最近、新しいコンピューターを手に入れたので、すべてのWebプロジェクトを移行すると思いました。ファイルの移動は簡単でしたが、データベースの移動は少し難しいようです。 phpMyAdminを使用してすべてのデータベースをエクスポートし、localhost.sqlに保存しました。次に、phpMyAdminを使用して新しいコンピューターにインポートしようとすると、エラーが発生します。
No data to import. Either no filename was sent or the filesize exceeded the maximum allowed size. See FAQ 1.16. (This was translated from Swedish)
アドバイスされているように、よくある質問を見てみました。そして、彼らはBigDumpと呼ばれるツールに言及しました。だから私はそれをダウンロードし、それを実行するために必要な設定を見た後、私はそれを使うことができないことに気づいた。どうして?特定のデータベースへの接続が必要だからです。一度に多くのデータベースをインポートしようとしています。したがって、そこには成功しません。
また、PHPのupload_max_filesize(およびFAQに記載されている他のファイルサイズ)を999のような値に設定しようとしました。何らかの理由で動作しないようです。再度実行する前に、すべてのサービスを再起動しました。
古いコンピューターでXAMPPを使用し、新しいコンピューターでWAMPに切り替えたことに言及する必要があります。しかし、それは問題ではないでしょう?両方の「パッケージ」がphpMyAdminとApacheを使用しているため。
この悪夢を回避する方法に関する提案はありますか?
HowTo
"php.ini"( "php.exe"is)。
次の例では、128MBのSQLファイルをアップロードおよびインポートできます。
post_max_size=128M
upload_max_filesize=128M
Apacheを再起動すると、準備は完了です。
代替案
問題を回避する別の方法は、コマンドラインを使用することです。しかし、それは回避策であり、回避策と同じくらいugいです:
C:\xampp\mysql\mysql.exe -u root -p db_name < C:\some_path\your_sql_file.sql
サーバーではなくコマンドラインを使用しているため、アップロードとPOSTサイズは関係ありません。だからこそ、これを "回避策"と呼びます。 、それはあなたの問題を実際には解決しないからです。
他の人は常にphp.iniファイルを再構成しようとしていますが、私にとっては、MYSQLコンソールを使用することがベストプラクティスだと思います。
MYSQLコンソールのステップバイステップガイドは次のとおりです。
MYSQLコンソールを開き、実行します。
タイプ:
mysql> use database_name;
mysql> source location_of_your_file;
location_of_your_fileはC:\ mydb.sqlのようになります
so コマンドはmysql> source C:\ mydb.sql;
このようなSQLダンプのインポートは、BIG SQL FILEに非常に役立ちます。
ファイルmydb.sqlをディレクトリCにコピーしました:.実行するには大文字のC:である必要があります mysqlエラーまたは構文エラーが表示されるため
沼サーバー内:
xampp\php\php.ini
を変更します
見つける:
post_max_size = 8M
upload_max_filesize = 2M
max_execution_time = 30
max_input_time = 60
memory_limit = 8M
への変更:
post_max_size = 750M
upload_max_filesize = 750M
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M
コマンドラインからインポートできます-mysql < databasedump.sql
(OSに依存)。
この手順に従って巨大なデータベースをダンプします:
1)phpスクリプトをダウンロードBigDump.phpから http://www.ozerov.de/bigdump/
2)プロジェクト内のbigdump.phpおよびdatabasedump.sqlを移動しますフォルダー(htdocsまたはwww)。
3)bigdump.phpファイルを開き、以下のセクションを編集します。
$db_server = 'localhost';
$db_name = '';
$db_username = '';
$db_password = '';
$filename = '.sql';
4)ブラウザでbigdump.phpを開き、インポートリンクをクリックします。
My.iniファイルを変更します
[mysqld]セクションに次の行を追加します
wait_timeout=28800
interactive_timeout = 28800
max_allowed_packet=32M
Mysqlを再起動します
dump.sqlファイルを開き、次の行を追加します
use mydbname
Mysqlフォルダーに移動して、このコマンドを実行します
mysql -u root -h localhost < dump.sql
私はこれが古いことを知っていますが..私はずっと前にこの問題を思いつきました。コンソールを使用してダンプSQLファイルを実行しました。または、PHPmyAdminの代わりに adminer を使用します。
これにより、数秒以内に大きなsqlファイルがインポートされます。
e:\xampp\mysql\bin>mysql -u root -h localhost < verybigsqlfile.sql
Phpmyadminを使用して大きなsqlファイルをインポートしないでください。 mysqlをオンラインで使用している場合は、mysqlコンソールにアクセスしてください。
sQLファイル(gzip、bzip2、Zipのみ)を圧縮してインポートします。 db csvファイルなどのテストファイルを圧縮すると、ファイルサイズが大幅に削減され(〜11 mb〜2 mb)、phpmyadminインポートエンジンによって圧縮データが削除されます
Linuxを使用している場合は、ターミナルに移動し、mysqlに接続してデータベースを選択した後、次のように入力します。
\. /path/to/database/database.sql
許容サイズを変更しようとしましたが、それで問題は解決しませんでした。
ただし、「ploaddir」というフォルダーがあります。これは、私の場合、次の場所にあります。
EasyPHP\modules\phpmyadmin\uploaddir
SQLファイルをそこに置いて、PHP My Admin。]の[インポート]タブに戻りました。既に[uploaddir]フォルダーにあるファイルをアップロードできるオプションがあります。制限はありません。
WindowsとEasyPHP 12.1を使用しています
phpmyadminには、ハードドライブからの読み取り機能もあります。ダンプをアップロードして、この機能を使用してください。ただし、可能であればコンソールから強くお勧めします。 phpは最初にファイルを処理する必要がなく、サーバーに直接読み込まれるため、はるかに高速です。
非常に大規模なデータベースをアップロードしている場合、WebインターフェースはHTTP最大HTTPリクエストサイズに制限されます
PHP.ini
アップロード制限を増やす
この行を見つける
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = ??M **<--- change here ....**
その後、サーバーを再起動します
/sbin/service httpd restart
または、directadminを使用してhttpサービスを再起動します
SQLYog を使用して、db操作にプロフェッショナル向けの最良の選択をします。 SQLYogを使用すると、SQLデータベースのnGB {n-> finite_size}をインポートできます。
シンプルなソリューションは、GUIベースで使いやすい「MySql Workbench」ソフトウェアをダウンロードしてインストールするだけです。最近、300MBサイズのmysqlデータベースをインポートしました。