インポートしようとしている大きな(〜150 MB)SQLファイルがあります。 PHPMyAdminを介してそれを多くの部分に分割することもできず、30秒のスクリプト処理後にタイムアウトするため、PHPスクリプトを介してインポートするには大きすぎます。したがって、MySQLコマンドラインからファイルを直接インポートする方法を探しています。
オンラインで検索すると、database_name < file_name.sql
またはsource file_name.sql
のいずれかを使用したいのですが、どちらも機能しません。
<
を使用すると、一般的なMySQL構文エラーが発生しますが、source
を使用すると、少し有望なfailed to open file 'file_name.sql', error: 2
が生成されるため、ソースコマンドが正しい軌道に乗っていると思います。
私はWindowsにいて、ローカルホストサーバーとしてxamppを使用しています(SQLを実行できるように、このファイルをローカルホストにインポートしようとしているだけです)。ファイルをxampp\mysql\bin
およびxampp\mysql\data\database_name
に配置しようとしました。
この.sqlファイルをMySQLコマンドラインから、または他の方法でMySQLにインポートする方法の提案は大歓迎です。
Xamppでは、次のようなコマンドラインでフルパスを使用する必要があると思います。
C:\xampp\mysql\bin\mysql -u {username} -p {databasename} < file_name.sql
Windowsではこれが機能するはずです(スラッシュと、パス全体が引用符で囲まれておらず、スペースが許可されていることに注意してください)
USE yourdb;
SOURCE D:/My Folder with spaces/Folder/filetoimport.sql;
"source"
は使用しないでください。少数のsql queries
を実行して出力を表示するように設計されており、大規模なデータベースをインポートすることはありません。
Wamp Developer
(XAMPP
ではありません)を使用していますが、同じである必要があります。
あなたがしたいことは、MySQL Client
を使用してあなたのために仕事をすることです。
MySQL
が実行されていることを確認してください。phpMyAdmin
またはMySQL Shell
を介してデータベースを作成します。cmd.exe
を実行し、sql
ファイルがあるディレクトリに移動します。mysql -u root -p database_name_here < dump_file_name_here.sql
database name
とdump file name
で置き換えます。MySQL root account password
を入力します(パスワードが設定されていない場合は、「-p」スイッチを削除します)。これは、mysql.exe
が環境パスを介して見つけることができ、sql
ファイルが実行元のディレクトリにあることを前提としています。それ以外の場合は、フルパスを使用します。
オプション1 Dは私のxamppまたはwamppのインストールフォルダである単一のcmdを使用してこれを行うことができますので、mysql.exeをインストールし、2番目のオプションのデータベース名と最後がsqlファイルであるため、これを使用して次にこれを実行します
D:\xampp\mysql\bin\mysql.exe -u root -p databse_name < D:\yoursqlfile.sql
wamppのオプション1
D:\wamp64\bin\mysql\mysql5.7.14\bin\mysql.exe -u root -p databse_name< D:\yoursqlfile.sql
フォルダーとmysqlバージョンを変更する
オプション2現在のパスがコマンドプロンプトを表示しているとします
C:\Users\shafiq;
cd..
を使用してディレクトリを変更し、xamppがインストールされているmysqlディレクトリに移動します。次に、cd..
でディレクトリを変更します。次に、binフォルダーに移動します。
C:\xampp\mysql\bin;
C:\xampp\mysql\bin\mysql -u {username} -p {database password}
。thenコマンドプロンプトでパスワードを入力するのが表示されたら入力してください。
を使用してデータベースを選択
mysql->use test (where database name test)
次に、ソースsqlをbinフォルダーに入れます。
最後のコマンドは
mysql-> source test.sql (where test.sql is file name which need to import)
次に、Enterキーを押します
これは完全なコマンドです
C:\Users\shafiq;
C:\xampp\mysql\bin
C:\xampp\mysql\bin\mysql -u {username} -p {database password}
mysql-> use test
mysql->source test.sql
C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql
それは私のデータベースに400MBのファイルをインポートするために私のために働いた。
mysql source
コマンドを使用して、特にWindowsでのリダイレクトエラーを回避します。
mysql [-u <username>] [-p<password>] <databasename> -e "source /path/to/dump.sql"
ここで、「コマンドの実行」の場合はe
Windowsでは、sqlコマンドに二重引用符を使用することを忘れないでください。
ただし、Windowsではバックスラッシュ\またはスラッシュ/のいずれかが機能します。
MySQLのコマンドラインを使用して大きなSQLファイルをインポートする場合。
まず、コマンドラインでファイルパスに移動します。次に、
オプション1:
mysql -u {user_name} -p{password} {database_name} < your_file.sql
警告メッセージが表示されます。コマンドラインインターフェイスでパスワードを使用すると、安全でない可能性があります。
完了。ファイルがインポートされます。
オプション2:
mysql -u {user_name} -p {database_name} < your_file.sql
この場合、SQLパスワードは提供されず、パスワードを入力するだけでパスワードが要求され、ファイルがインポートされます。
パスワードなしのルートとしてのユーザー名
mysql -h localhost -u root databasename < dump.sql
ルートユーザーのパスワードを持っていないため、ローカルホストで問題に直面しました。上記のように-pパスワードなしで使用できます。パスワードを求められたら、Enterキーを押します。
Xamppのセットアップでは、次を使用してデータベースをMySQLにインポートできました。
C:\xampp\mysql\bin\mysql -u {username goes here} -p {leave password blank} {database name} < /path/to/file.sql [enter]
ローカルマシンでの個人的な経験は次のとおりです。
ユーザー名: ルート
データベース名: testdatabase
SQLファイルの場所: databasebackup.sqlはデスクトップにあります
C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql
それは私の1GB +ファイルをデータベースにインポートするのに役立ちました。
こんにちは私は同じ問題を抱えていましたが、私は多くの異なる状態を試してみました:SOURCEは動作しません;私の場合の最後に:
SOURCE D:\Barname-Narmafzar\computer programming's languages\SQL\MySQL\dataAug-12-2019\dataAug-12-2019.sql;
エラーは:
ERROR: Unknown command '\B'. '>
また、住所の引用では機能しませんでした。しかし、それは機能しません。最後に:
SOURCE D:\Barname-Narmafzar\computer programming's languages\SQL\MySQL\dataAug-12-2019\dataAug-12-2019.sql
ただし、USE database_nameを使用することを忘れないでください。それ以前は。 SOURCEまたはUSEまたはHELPはMysql自体のためであり、HELPを記述するときは次のように記述されていますが、これらのクエリコードではないためです。
「すべてのテキストコマンドが最初に行にあり、最後が;であることに注意してください。」.
しかし、ここでは機能しません。
私はCMDでそれをやったと言うべきであり、Mysql Workbenchでそれを試しませんでした。それでした
Windowsの場合:エクスプローラーを使用して、.sqlファイルがあるフォルダーに移動します。上部のアドレスバーに「cmd」と入力します。 Cmdが開きます。タイプ:
"C:\path\to\mysql.exe" -u "your_username" -p "your password" < "name_of_your_sql_file.sql"
少し待つと、データベースでsqlファイルが実行されます。 2018年2月にMariaDBと連携することを確認しました。