コマンドラインからMySQLダンプをダウンロードする


306

Linuxシステム管理者のスキルが必要ないため、Linodeから離れます。より初心者向けのサービスへの移行を完了する前に、MySQLデータベースのコンテンツをダウンロードする必要があります。コマンドラインからこれを行う方法はありますか?



mysqldumpはあなたが探しているものです。
Faruk Sahin

1
@AZinkeyその投稿のコピーの受け入れられた回答が見つかり、数か月後に回答の最初の部分に私の回答の内容(単語ごと)を貼り付けたと思います...
nickhar

回答:


656

これは、mysqldumpコマンドライン関数を使用して実行できます。

例えば:

DB全体の場合:

   $ mysqldump -u [uname] -p db_name > db_backup.sql

すべてのDBの場合:

   $ mysqldump -u [uname] -p --all-databases > all_db_backup.sql

DB内の特定のテーブルの場合、次のようになります。

   $ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql

gzipを使用して出力を自動圧縮することもできます(DBが非常に大きい場合)。

   $ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz

これをリモートで行い、問題のサーバーにアクセスできる場合は、次のように機能します(MySQLサーバーがポート3306にあると想定しています)。

   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql

.sqlコマンドラインを実行するフォルダにファイルをドロップするはずです。

編集: CLIコマンドにパスワードが含まれないように更新されました-p。パスワードなしでオプションを使用してください。それはあなたにそれを要求し、それを記録しません。


1
stackoverflow.com/questions/2989724/…と組み合わせたあなたの答え -彼はそれをダウンロードする必要があることを含めたので、彼が求めていることをすべきです。ビルドされたファイルを取得するには、それか、wgetまたはscpが必要です。
Zak、

47
コマンドにパスワードを入力しない方が安全であることに注意してください。パスワードなしで-pオプションを使用するだけで、実行時にパスワードの入力を求められます。そのため、パスワードはコマンド履歴に保存されません(および取得される可能性があります)。したがって、次のコマンドを使用します。mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name> db_backup.sql
Pitt

3
この記事で述べたよう>保存に使用するのではなく-r、外部文字のトラブルや、エンコードの問題に関する悪夢を防ぐために使用しています
Pathros 2018

1
大規模でアクティブに更新されるデータベースの場合は、-single-transactionパラメーターを使用します。これによりチェックポイントが作成され、整合性が確保されます。また、ストアドプロシージャ/関数/トリガーがある場合は、スイッチ--routines --triggersを使用します
accord_guy

1
--result-file=db_backup.sql代わりに使用する必要があります> db_backup.sqlMySQLドキュメントからの引用:「UTF-16は接続文字セットとして許可されていないため(「許可されていないクライアント文字セット」を参照)、ダンプファイルが正しく読み込まれません。この問題を回避するには、--result-fileオプションを使用して、 ASCIIフォーマット」。
マーティンブラウン

13

mysqlの最新バージョンでは、少なくとも私の場合、パスをコマンドに直接入力することはできません。

実行する必要があります:

mysqldump -u [uname] -p db_name > db_backup.sql

次に、パスワードを要求します。


2
間の取り外しスペース-pオプションと実際のパスワードはトリックありません
Y2K-shubham

8

リモートサーバーからダウンロードする場合の簡単な例を次に示します。

mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-pは、パスワードを入力することを示します。これはdb_nameとは関係ありません。コマンドを入力すると、パスワードの入力を求められます。入力してEnterキーを押します。


5

Windowsでは、mysqldump.exeが存在するmysql binを指定する必要があります。

cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

これをbackup.cmdなどのテキストファイルに保存します。


または、通常、mysqlをPATH変数にmysql入れて、ディレクトリにいなくてもどこからでもコマンドを実行できるようにします。
behz4d 2017

2

コマンドプロンプトを開き、このコマンドを直接入力します。mysql内に移動してから、このコマンドを入力しないでください。

mysqldump -u [uname] -p[pass] db_name > db_backup.sql

1
5年前の質問で受け入れられた回答からコードの最初の行をコピーすることは、カルマ農業のための大胆な戦略です。
Phillip Copley 2017

Mysqlプロンプト内でこのMySQLdumpコマンドを試しましたが、機能しませんでした。だからちょうど答えた:-)
Nithin Raja 2017

2

MySQLインストールディレクトリに移動し、そこからcmdを開きます。次に、以下のコマンドを実行して、データベースのバックアップを取得します。

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql

1

入力するmysqldumpmysqldump --help、コマンドに入力するだけですhow to use

これが私のcmd結果です

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help


1

コマンドラインでパスワードを入力したい人のために。可能ですが、特殊文字が問題にならないように、引用符で囲むことをお勧めします。

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

-1

これを使用するarchiedbという名前のデータベースがある場合は、このmysql -p --databases archiedb> /home/database_backup.sqlを使用します。

これがLinuxであると想定して、バックアップファイルの保存場所を選択します。


shell> mysqldump -p mypassword --databases mydb> /home/backup.sql。
Nabaasa Archie、

-1

Windowsユーザーの場合、mysqlフォルダーに移動してコマンドを実行できます

例えば

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql

1
MySQLがLinux上で実行されていることが質問から示唆されました。
gmauch

-1

注:この手順は、MySQLファイルをダンプした後にのみ行われます(上記の回答のほとんどで対処済みです)。

これは、リモートサーバーに上記のダンプファイルがあり、それをローカルコンピューターにダウンしたいことを前提としています。

ダンプされた.sqlファイルをリモートサーバーからローカルコンピューターにダウンロードするには、次のようにします。

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