コマンドプロンプトを使用してMySQLデータベースをエクスポートする方法


342

データベースが非常に大きいので、コマンドプロンプトを使用してエクスポートしたいのですが、方法がわかりません。

WAMPを使用しています。


6
DOS?Windows 98を使用していますか?または、コマンドプロンプトを意味しますか?
jle

wampを使用している場合は、エクスポートオプション付きのphpmyadminも必要です
Lars C. Magnusson

回答:


536

まず、コマンドラインがmysqlコマンドを認識しているかどうかを確認します。そうでない場合は、コマンドに移動して次のように入力します。

set path=c:\wamp\bin\mysql\mysql5.1.36\bin

次に、次のコマンドを使用してデータベースをエクスポートします。

mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql

次に、データベースのパスワードの入力を求められます

これにより、このコマンドの実行中に、現在のパスにデータベースがエクスポートされます

注:インポートとエクスポートの両方に関する詳細な手順を以下に示します


7
エラー「mysqldump:Got error:1049:Unknown database 'thepassword' when selection the database」が表示されますが、「
機能しました–AteşDanışJul

11
@AteşDanış -pとの間にスペースはありませんthepassword
チャールズウッド

44
使用するだけで-p、パスワードの入力を求められます。このようにして、たとえばパスワードを保存しないようにします.bash_history
nuala

7
私にとって、このコマンドは機能します:mysqldump -u YourUser -p YourDatabaseName> oughtsqlfile.sql(コマンドを入力し、Enterキーを押してから、パスワードを入力します)。
shasi kanth

3
コマンドラインでパスワードを指定することは安全ではないと考えるべきです。
2014年

112

次のコマンドを使用するだけです。

エクスポートの場合:

mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz] 

インポートの場合:

gunzip < [compressed_filename.sql.gz]  | mysql -u [user] -p[password] [databasename] 

注:キーワード「-p」とパスワードの間にスペースはありません。


1
彼がWAMPを使用しているという事実を見逃したと思います-Windows ... gunzip / gzipはWindowsにバンドルされていません。いくつかのものをインストールした後にコマンドを実行することは可能かもしれませんが、あなたはその事実を見逃していると思います。
Rolf

2
gzip -9最大圧縮が使用されるため、指定すると、結果のファイルが少し小さくなります。
AntonK

39

まず最初にコマンドプロンプトを開き、次にcmdでbinディレクトリを開きます(cmdコマンドに精通していることを願っています)WAMPの MySqlフォルダーのbinディレクトリに移動しますプログラムファイルのます。

コマンドを実行する

mysqldump -u db_username -p database_name > path_where_to_save_sql_file

Enterキーを押すと、特定のデータベースがエクスポートされ、SQLファイルが指定の場所に作成されます。

私はあなたがそれを得たことを願っています:)質問がある場合は私に知らせてください。


私の友人は、プロセスを少し説明しようとしました。いうし、直接コマンドを与える
Mitesh vaghela

38

さてあなたは以下のコマンドを使うことができます、

mysqldump --databases --user=root --password your_db_name > export_into_db.sql

生成されたファイルは、このコマンドを実行したのと同じディレクトリにあります。

詳細については、公式リファレンスをご覧くださいmysqldumpImport MySQL MySQL DB

:使用--databases代わりに--database最後のものはサポートされなくなったため、。

楽しい :)


4
「LOCK TABLESの使用時にアクセスが拒否されました」などのエラーが発生した場合は、コマンドに「--single-transaction」パラメータを追加する必要があります。
Skyrpex

エラーmysqldump: [ERROR] unknown option '--database'が発生しましたが、ウィットの除外--databaseが機能しました。
hejdav

@Skyrpexありがとう、それが私が探していたソリューションでした。
Martijn

22

このパスでコマンドプロンプトに移動します。

C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>

次に、このコマンドでデータベースをエクスポートします(-pの後にスペースはありません)。

mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql


21

mysqlインスタンスを次のように見つけます。

which mysql

これが正しい場合は、次のようにエクスポートします(そうでない場合は、binのmampフォルダーにあるmysqlインスタンスに移動します)。

mysqldump -u [username] -p [password] [dbname] > filename.sql

同時にそれを圧縮したい場合:

mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz

次に、このファイルをサーバー間で移動できます。

scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/

(ここで、xxx.xxx.xxx.xxxはサーバーのIPアドレスです)

そして、それをインポートします:

gunzip filename.sql.gz | mysql -u [user] -p [password] [database]

4
繰り返しますが、W AMP => Windows。これはLinuxコマンドです。gunzip / gzipはWindowsにバンドルされていないため、使用できない場合があります。scp ...ポイントがわかります。
Rolf、

Opentunedの答えは素晴らしいです。小さなことの1つはpassword、コマンドラインから実際の値を削除することです。
Vincent

1
@ Opentuned、Linuxフェチとは何ですか?
Pacerier 2015年

for -p [パスワード]は近くにある必要があります。例:mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql 警告:コマンドラインインターフェースでパスワードを使用すると、安全でない場合があります。
Marwan Salim、2018

19

PROCEDURE、FUNCTION、およびTRIGGERもエクスポートするには、--routinesパラメーターを追加します。

mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql


スイッチ--routinesは違いをもたらします:)手順、関数、トリガーのみをエクスポートする方法のヒントはありますか?切り替えを忘れて、「アルゴリズム」なしで「純粋な」DBをエクスポートした人向け:)
AntonK

ところで、スイッチ--eventsはイベントスケジューラのイベントをダンプするために必要であり、--skip-triggers指定されていない限り、トリガーは常にエクスポートされます(7.4.5.3ストアドプログラムのダンプによると)
AntonK

10

このコマンドでデータベースをエクスポートします。日付も含まれます

mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz

(-pの後にスペースはありません)


指定する--databasesとステートメントがCREATE DATABASE XYZ;and として挿入されることに注意してください。USE XYZ;これは、SQLを別の名前で別のDBにインポートするときに便利ではありません...
AntonK

8

WampサーバーをD:ドライブにインストールしたので、urコマンドラインから次のパスに移動する必要があります->(そして、c:ドライブにur wampをインストールした場合は、d:wtih c:を置き換えます)

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"

ここでrootは私のphpmyadminのユーザーpasswordはphpmyadminの パスワードなので、その場所で何もタイプせずにrootのパスワードを設定していない場合、 db_nameはデータベース(データベースのバックアップを取る)、backupfile.sqlはuがurデータベースのバックアップを必要とし、バックアップファイルの場所(d:\ backupfile.sql)をコンピューター上の他の場所に変更できるファイル


私がこれを行うために見つけたすべての方法の中で、この答えは私のために働いた唯一のものです。MySQLバージョン5.6を使用しているため、コマンドプロンプトのパスは... \ MySQL \ MySQL Server 5.6 \ binでした。MySQL管理者のユーザー名とパスワードを使用する必要があります。特定のデータベースに指定したものは機能しません。サチンありがとうございます。MySQLマニュアルのv.5.6の説明でさえ機能しません。構文はそこで不完全です。
Max West

それは本当に間のスペースで動作します-ppassword
デイビス

7
mysqldump -h [host] -p -u [user] [database name] > filename.sql

localhostの例

mysqldump -h localhost -p -u root cookbook > cookbook.sql

4

これらすべてのソリューションの問題( >リダイレクター文字)の問題は、stdoutからダンプを書き込むため、データベースの一部の文字のエンコードが壊れる可能性があることです。

文字エンコードの問題がある場合。といった :

エラー1064(42000):SQL構文にエラーがあります。近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください...

次に、使用する必要があります-rファイルを書き込むためのオプションを。

MySQL

mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql

Dockerの使用

docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql

注:これにより、インスタンス内のダンプとして現在のパスがマウントされます。

答えを見つけました ここで

逆に、<ダンプをデータベースにインポートするために使用しないでください。繰り返しますが、utf8以外の文字は渡されない可能性があります。しかし、ソースオプションを好む。

mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql

1

構文

(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)

c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql

ここで、d:\ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exeは実際のmysqldump.exeパス、mydbnameはエクスポートするデータベースの名前、d:\ mydb.sqlはパスです。エクスポートしたデータベースを保存したい。


0

Wampサーバーを使用しました。試着した

c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql

root mysqlのユーザー名です。パスワードがある場合は、次のように指定します。

-p[yourpassword]

うまくいくことを願っています。


--passwordも使用して、パスワードを入力する必要がある場合
Erce

0

Windows OSの場合

mysqldumpコマンドの実行中にエラー1064 mysql(42000)が発生した場合は、現在のターミナルを終了します。mysqldumpコマンドを実行します。

mysql>exit 
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql

0

私はドッカーで実行されていたデータベースのダンプを取ろうとしていて、同じことを達成するために以下のコマンドを考え出しました:

docker exec <container_id/name>/ usr / bin / mysqldump -u <db_username>--password =<db_password> db_name > .sql

お役に立てれば!


-2

このスクリプトを使用して、次のリンクにあるターミナルからデータベースをエクスポートまたはインポートできます:https : //github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh

echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo

mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql

if [ "$action" == "export" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
        echo
    else
        echo -e "Using default location of mysqldump\n"
    fi
    read -p 'Give the name of database in which you would like to export: ' db_name
    read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
    $mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysql that you want to use: ' mysql_location
        echo
    else
        echo -e "Using default location of mysql\n"
    fi
    read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
    read -p 'Give the name of database in which to import this file: ' db_name
    $mysql_location -u $u_name -p $db_name < $sql_file
else
    echo "please select a valid command"
fi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.