web-dev-qa-db-ja.com

コマンドラインからmysqlデータベースサーバーの完全バックアップを作成することは可能ですか?

$ mysqldump -h localhost -u username -p database_name > backup_db.sql

上記の行を使用できますが、サーバー内の1つのデータベースのみです。すべてのデータベースを1つのバックアップファイルに完全にバックアップできますか?

または、このプロセスをシリアル化するコマンドはありますか?

以下のようなもの(私は追加しました-すべてがおそらく間違っています):

$ mysqldump -u username -h localhost -p -all | gzip -9 > backup_db.sql.gz

ありがとう。

7
Sinan

--all-databasesオプションを使用すると、すべてのデータベースのすべてのテーブルがダンプされます。

mysqldump -u username -h localhost -p --all-databases > all_databases.sql
14
Tommeh

さらに、パスワードがプロセスリストに表示されないようにmy.cnfファイルを設定することをお勧めします。 これをチェックしてください 。それはあなたを助け、あなたのシステムにアクセスするかもしれない他の誰かによってあなたのSQLDBがハッキングされるのを防ぎます。

4
phuzion

ロック時間が長くなる可能性があるため、「すべてのデータベース」のバックアップ用のLVMスナップショットをお勧めします。ただし、使用法の文字列または「man mysql<^M>/all "そのような提案をするのは無責任かもしれないと私は感じます。

~$ 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
Bruno Bronosky