web-dev-qa-db-ja.com

すべてのユーザーと権限とパスワードを使用してMySQLデータベース全体をバックアップする方法は?

MySQLデータベース全体を、すべてのユーザーとそのアクセス許可およびパスワードに関する情報でバックアップする必要があります。

http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/ にオプションが表示されますが、すべてをバックアップするためのオプションは何である必要がありますかすべてのユーザーとパスワードと権限、およびすべてのデータベースデータを含むMySQLデータベース?

MySQLの完全バックアップなので、後で別のマシンにインポートできます。

13
Dakadaka

最も基本的には、使用できるmysqldumpコマンドは次のとおりです。

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

これには、すべてのusers/privsテーブルを含むmysqlデータベースが含まれます。

これを本番システムで実行すると、ロックが発生する可能性があるため、欠点があります。テーブルが十分に小さい場合は、大きな影響はない可能性があります。最初にテストすることをお勧めします。

ただし、純粋なInnoDB環境を実行している場合は、--single-transactionフラグを使用して、単一のトランザクションでダンプを作成(取得)して、データベースのロックを防ぐことができます。ダンプによって実行される最初のFLUSH TABLESコマンドがテーブルをロックする可能性があるというコーナーケースがあることに注意してください。その場合は、ダンプを強制終了して再起動してください。また、これをバックアップ目的で使用している場合は、--master-dataフラグも使用して、ダンプが取得された場所からバイナリログ座標を取得することをお勧めします。そうすれば、復元する必要がある場合は、ダンプファイルをインポートしてから、mysqlbinlogコマンドを使用して、このダンプが取得された位置からバイナリログファイルを再生できます。

29

ストアドプロシージャとトリガーも転送したい場合は、使用する価値があるかもしれません

mysqldump --all-databases --routines --triggers

マスター/スレーブレプリケーションがある場合は、それらの設定をダンプできます

--dump-slaveおよび/または--master-data

7
AleX