phpmyadminで大きなSQLファイルをインポートする方法


81

約12MBのSQLファイルをインポートしたい。しかし、ロード中に問題が発生します。SQLファイルを分割せずにアップロードする方法はありますか?


1
mysql workbenchまたはmysql Yog
diEcho 2013年

こちらでもご覧いただけますstackoverflow.com/questions/9593128/… ダン。
糞2015

mysqlコンソールを使用できない場合は、phpmyadminのドキュメントにある興味深い解決策があります。ozerov.de
Paolo Gibellini 2017年

回答:


97

OSの好みに応じて、mysqlコンソールからインポートしてみてください。

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

または、リモートサーバー上にある場合は、-hフラグを使用してホストを指定します。

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}

1
わかりました、元に戻す人に感謝します。php.iniに変更を加え、ファイルを圧縮します。それは私のために働きます:)
Jasmeet Kaur Chauhan 2012

3
これを行う最速の方法!
アリス2013年

1
これは素晴らしい答えです。あまり詳しくない人は、DBファイルをホストのファイルマネージャーにアップロードしてから、ホストのSSHを使用してローカルで操作することができます。これは、mysql1回の移行でサーバーにインストールするよりもはるかに簡単です。助けてくれてありがとう!(また、角かっこは必要ありませんでした)
DomainsFeatured 2016年

1
疑問に思っている人は、MySQL / binフォルダーを参照してコマンドを実行する必要があります。うまくいきました。ありがとう。
エティエンヌデュプイ2017年

1
彼らがパスワードを持っていないというのはどうですか?デフォルトのユーザー名rootでデータベースを使用していますか?このコマンドを使用して、パスワードを要求します。
Hkachhia

68

あなたがしなければならない3つのこと:

php.iniPHPインストールの(注:操作するために、右のphp.iniを見つけ、あなたはCLIは、Apache、またはnginxのためにそれをしたい場合は異なります)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

または他の値を設定します。

apacheがインストールされている場合はapacheを再起動/リロードし、nginxを使用している場合はnginxの場合はphp-fpmを再読み込みします。

リモートサーバー?

max_execution_timeファイルのアップロードに時間がかかるため、同様に増加します。

NGINXのインストール?

:あなたが追加する必要がありますclient_max_body_size 912M;/etc/nginx/nginx.confhttp{...}ブロック


3
正解。これらの3行は必須

これは、cliディレクトリではなくapacheディレクトリに追加する必要があります(少なくとも私のUbuntuボックスでテストした場合)
Bad_Neighbor 2017

これを変更しても機能/etc/php/7.1/apache2/php.iniしませんでした
W.Doch 2018

@RickSanchezこのphpバージョンをApacheで実行してもよろしいですか?実行phpinfo()して、値が正しく設定され、サーバーが再起動されたことを確認してください
Toskan 2018

1
php iniでmax_execution_time値を上げて、Apacheを再起動することを忘れないでください
hamboy75 2018

62

phpmyadminディレクトリにあるconfig.inc.phpファイルを編集します。私の場合、それはにありC:\wamp\apps\phpmyadmin3.2.0.1\config.inc.phpます。

その上にある行を見つけて、次の$cfg['UploadDir']ように更新します$cfg['UploadDir'] = 'upload';

次に、phpmyadminディレクトリ内に「upload」というディレクトリを作成します(私にとってはC:\wamp\apps\phpmyadmin3.2.0.1\upload\)。

次に、インポートしようとしている大きなSQLファイルを新しいuploadディレクトリに配置します。phpmyadminコンソール内のdbインポートページに移動すると、以前は存在しなかったドロップダウンが表示されます。これには、作成したばかりのアップロードディレクトリ内のすべてのSQLファイルが含まれています。これを選択して、インポートを開始できます。

WindowsでWAMPを使用していない場合は、それほど問題なくこれを環境に適応させることができると確信しています。

参照:http//daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/


5
phpMyAdminの最新バージョンでは、$ cfg ['UploadDir']変数はまったくありません。ただし、このソリューションは、ファイルの新しい行に変数を追加するだけで機能します。
dan 2016年

VARがで発見されconfig.default.php、同じディレクトリの、phpMyAdminのバージョン4.6.4使用しています
KAD

1
前のコメントを編集できなくなりました。ディレクトリはlibraries/config.default.php
KAD 2017年

MySQLコマンドラインを2日間試した後、失敗した結果の素晴らしいソリューション。
youhana 2017年

22

LINUXユーザー向けのソリューション(sudoで実行)

'upload'および 'save'ディレクトリを作成します。

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

次に、phpmyadminの設定ファイルを編集します。

gedit /etc/phpmyadmin/config.inc.php

最後に、「upload」ディレクトリと「save」ディレクトリの両方に絶対パスを追加します。

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

これで、ファイルを/etc/phpmyadmin/uploadフォルダーにドロップするだけで、phpmyadminからファイルを選択できるようになります。

ここに画像の説明を入力してください

この助けを願っています。


この方法ではFile could not be read!、アップロードフォームの送信ボタンをクリックすると、phpmyadminからメッセージが表示されます。現在、これをトラブルシューティングしている最中です。

@JoeRoccあなたはあなたの問題の解決策を見つけましたか?おそらく、それは許可または所有権の問題です。試してみてくださいsudo chmod 777 your-filename.sql
Guille Acosta 2017

2
775.777ではありません。ライブサーバーで動作するように777を設定することをお勧めしません。セキュリティ上の問題があります。
Koushik Das 2017

15

1行で完了です(mysqlコマンドがグローバルとして使用可能であることを確認するか、mysqlインストールフォルダーに移動してbinフォルダーに入ります)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

ここに

  • u Userの略です
  • p パスワードの略
  • D データベースの略です

---データベース名の後に記号を追加することを<忘れないでください---

名前と拡張子を含む完全なファイルパスは次のようになります

c:\folder_name\"folder name"\sql_file.sql

---フォルダとファイル名に二重引用符を使用してバインドするよりも多くのスペースが含まれている場合---

ヒントと注意:パスワードは後で書き込むことができます-pが、その時点で画面を見ている他の人に表示されるため、お勧めしません。パスワードを入力しないと、Enterキーを押してコマンドを実行するタイミングを尋ねられます。



7

.sqlファイルに次の構成を含めることで、大きなファイルをインポートできましたhttpd.conf

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>

4

php.iniファイルを編集する必要があります。upload_max_filesize post_max_sizeファイルサイズに合わせて以下を変更してください。

phpinfo()現在の値を確認するために実行しようとしています。php.iniファイルを直接変更する自由がない場合は、ini_set()を試してください。

それも選択肢にない場合は、bigdumpを試してみてください。




2

私は記事に出くわしました、そしてこれは私にとって最もうまくいきました

  1. お気に入りのコードエディターを使用して、phpmyadminディレクトリ内のconfig.inc.phpファイルを開きます。ローカルのMAMP環境では、次の場所に配置する必要があります。

ハードドライブ»アプリケーション»MAMP»bin»config.inc.php

  1. フレーズを検索します$cfg[‘UploadDir’]–次のようになります。

$cfg['UploadDir'] = '';

  1. 次のように変更します。

$cfg['UploadDir'] = 'upload';

  1. 次に、そのphpmyadminディレクトリ内に新しいフォルダーを作成し、アップロードする名前を付けます。

  2. インポートしようとしている大きな.sqlファイルを取得し、その新しいアップロードフォルダーに配置します。

  3. これで、次にデータベースをphpMyAdminにインポートするときに、[インポートするファイル]セクションの標準の参照領域のすぐ下に新しいドロップダウンフィールドが表示されます。


2

PHPMyAdminを使用しますが、ターミナルを使用するのが最善の方法である場合もあります。

  • データベースに接続します:(mysql -h localhost -u root -pユーザーとデータベースの場所のルートとローカルホストを切り替えます)
  • ダンプからインポートを開始します。 \. /path/to/your/file.sql
  • ターミナルを使っているので、コーヒーを飲んで自慢しましょう。

以上です。リモートサーバーを使用している場合は、.sqlファイルをいくつかのフォルダーにアップロードする必要があることを覚えておいてください。


2

共有ホスティングを使用している人のための答え。300MBのDBファイルをサーバーにインポートするために使用したこの小さなスクリプトを使用するのが最適です。このスクリプトはBigDumpと呼ばれます。

リソースが制限されたサーバーに大きなDBをインポートするためのスクリプトを提供します


これは実際には良い解決策ですが、ある日無効になる可能性のあるURLのために反対票を投じました。このスクリプトに関するいくつかの情報、特にその名前を追加してください。
代わりに

ビッグダンプと呼ばれ、大きなデータベースファイルをサーバーにインポートするときにSQLサーバーが停止したり中断されたりするのを防ぎます。ところで、いつでもダウンする可能性のあるURLを使用した他の回答があり、いずれもダウン投票されていません
c0d3x1337 2018

2

MAMPでは、次の方法で巨大なファイルをロードできます。

  1. このディレクトリに新しいフォルダを作成します/ MAMP / bin / phpMyAdmin / "folderName"

  2. 次に、「/ MAMP / bin / phpMyAdmin /config.inc.php」の531行目を編集します。

       $cfg['UploadDir']= 'folderName';   
    
  3. .sqlまたは.csvファイルをこのフォルダーにコピーします。

  4. これで、「PhpMyAdmin」に別のオプションが表示されます。Webサーバーのアップロードディレクトリから選択します。newFolder/:ファイルを選択してインポートできます。

    今すぐどんなファイルでもロードできます!!


1

大きなファイルをアップロードする最良の方法は、phpmyadminを使用しないでください。原因phpmyadinは、最初にphpアップロードクラスを使用してファイルをアップロードし、次にsqlを実行します。これにより、ほとんどの場合、タイムアウトが発生します。

最善の方法は次のとおりです。wampfolder> bin> mysql> bin dirrectoryと入力し、次の行を記述します

mysql -u root -p listnames <latestdb.sql ここでlistnamesは最初にデータベース名であり、空のデータベースを作成してください。latestdb.sqlは、データが存在するSQLファイル名です。

ただし、重要なことの1つは、データベースファイルにUnicodeデータがあるかどうかです。latestdb.sqlファイルと1行前の1行を開く必要があります。行は:

セット名utf8; 次に、コマンドモードでこのスクリプトコードを実行します


1
  1. SQLファイルをテキストエディタ(メモ帳など)で開きます
  2. すべて選択->コピー
  3. phpMyAdminに移動し、データベースを選択して、[SQL]タブに移動します
  4. コピーしたコンテンツをクリップボードに貼り付けます
  5. それはjavascriptエラーをポップアップするかもしれません、それを無視してください
  6. 実行する

良い習慣ではありません!これを行うと、大きなテキストは大きな問題を引き起こします。最良の方法は、大量のインポートまたはmysqlを介したインポートを許可するようにphp.iniを構成することです。
マルセロアギモベル2018年

0

サーバー設定を変更して、12 mbを超えるファイルのアップロードを許可すると、問題がないはずです。通常、サーバー設定はファイルアップロード用に5〜8mbに設定されています。


1
これは質問に対する答えを提供しません。著者に批評したり説明を求めたりするには、投稿の下にコメントを残してください。-レビューから
Sebastian Brosch

1
実際、この回答が投稿された時点では、これはファイルのアップロードがデフォルトで十分な大きさではなかったという最も一般的なエラー(3年前)でした。彼はphpmyadmin == webinterfaceを使用しています。import ==ディスクからアップロードします。アップロード==サーバー設定。サーバー設定==デフォルトは3年前の5または8mbです。だから私はこれがどのように答えを提供しないのか分かりません。はい、私は彼が使用しているサーバー、apache、ngix、iis、その他を提供していないため、正確にセットアップする方法を手で彼に導きませんでした。
Tschallacka 2016年

0

1つの解決策は、コマンドラインを使用することです。

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

SQLへのパスを確認するだけですインポートファイルへの明示的に指定され。

私の場合、これを使用しました。

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

出来上がり!準備できた。


0

phpmyadminによって生成された大きなデータベースダンプをインポートするように設計されたPHPスクリプトを作成しました。これはPETMIと呼ばれ、ここからダウンロードできます[プロジェクトページ] [gitlabページ]。1GBのデータベースでテストされています。


0

PHPmyadminはgzip形式の圧縮ファイルも受け入れるため、ファイルをgzipで圧縮し(ない場合は7Zipを使用)、zip形式のファイルをアップロードできます。テキストファイルなので、圧縮率が高くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.