web-dev-qa-db-ja.com

リモートマシンからMySQLダンプを使用する方法

リモートサーバーで実行されているmysqlデータベースをバックアップするには、バックアップファイルをローカルpcに保存する必要があります。

68
Harsha

Mysqldump で試してください

#mysqldump --Host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql
75
CloudyMarble

SSHにアクセスできましたか?

シェルでこのコマンドを使用して、データベース全体をバックアップできます。

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

これは実際には1つのコマンドの後に>演算子が続き、「前のコマンドの出力を取得して、このファイルに保存します」と言います。

注:-pとmysqlパスワードの間にスペースがないことは、タイプミスではありません。ただし、-pフラグを残したまま、実際のパスワードを空白のままにすると、パスワードの入力を求められます。これは、パスワードをbash履歴から除外するために推奨される場合があります。

52
Ian Jamieson

-single-transactionオプションについては誰も言及していません。データの一貫性を確保するために、InnoDBテーブルにデフォルトで使用する必要があります。この場合:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql]

これにより、ダンプが他のトランザクションから分離された単一のトランザクションで確実に実行され、部分的なトランザクションのバックアップが防止されます。

たとえば、ユーザーが自分のアカウントクレジットでギアを購入できるゲームサーバーがあるとします。データベースに対する基本的に2つの操作があります。

  1. クレジットから金額を差し引きます
  2. 武器を武器に追加する

これらの操作の間にダンプが発生した場合、2番目の操作はSQLダンプファイルにダンプされないため、次回バックアップを復元すると、ユーザーは購入したアイテムを失うことになります。

これは単なるオプションですが、基本的にmysqldumpでこのオプションを使用しない理由はあまりありません。

37
datasn.io

このトピックは、Googleの結果の最初のページに表示されるため、新規参入者に役立つヒントを紹介します。

Sqlをダンプして、1行でgzipすることもできます。

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
20
Unnawut
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]
3
user3567805

ここですべての組み合わせを試しましたが、これは私のために働いた:

mysqldump -u root -p --default-character-set=utf8mb4 [DATABASE TO BE COPIED NAME] > [NEW DATABASE NAME]
1
jsibs