MySQLデータベース全体を、すべてのユーザーとそのアクセス許可およびパスワードに関する情報でバックアップする必要があります。
http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/ にオプションが表示されますが、すべてをバックアップするためのオプションは何である必要がありますかすべてのユーザーとパスワードと権限、およびすべてのデータベースデータを含むMySQLデータベース?
MySQLの完全バックアップなので、後で別のマシンにインポートできます。
最も基本的には、使用できるmysqldumpコマンドは次のとおりです。
mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql
これには、すべてのusers/privsテーブルを含むmysqlデータベースが含まれます。
これを本番システムで実行すると、ロックが発生する可能性があるため、欠点があります。テーブルが十分に小さい場合は、大きな影響はない可能性があります。最初にテストすることをお勧めします。
ただし、純粋なInnoDB環境を実行している場合は、--single-transaction
フラグを使用して、単一のトランザクションでダンプを作成(取得)して、データベースのロックを防ぐことができます。ダンプによって実行される最初のFLUSH TABLES
コマンドがテーブルをロックする可能性があるというコーナーケースがあることに注意してください。その場合は、ダンプを強制終了して再起動してください。また、これをバックアップ目的で使用している場合は、--master-data
フラグも使用して、ダンプが取得された場所からバイナリログ座標を取得することをお勧めします。そうすれば、復元する必要がある場合は、ダンプファイルをインポートしてから、mysqlbinlog
コマンドを使用して、このダンプが取得された位置からバイナリログファイルを再生できます。
ストアドプロシージャとトリガーも転送したい場合は、使用する価値があるかもしれません
mysqldump --all-databases --routines --triggers
マスター/スレーブレプリケーションがある場合は、それらの設定をダンプできます
--dump-slave
および/または--master-data