(※このページは2020年6月6日に更新)
この記事では MySQL の Database・Table データをファイルにバックアップし、またリストアする方法を紹介します。
この方法は MySQL に作成したデータを別のサーバーに移動する時などに役立ちます。
Database をバックアップ
全てのデータベースをバックアップする場合はターミナル上で以下のコマンドを入力
(パスワードを求められた場合、入力し Enter キーを押下)
mysqldump --user="ユーザ名" --host="ホスト名" --password --all-databases > "ファイル名"
/* (例) rootユーザーで管理されている localhost 上の全てのデータベースを、sqlAllDatabases.txt というファイル名ででバックアップを作成する場合 */
mysqldump --user=root --host=localhost --password --all-databases > sqlAllDatabases.txt
/* (省略形) */
mysqldump -uroot -hlocalhost -p -A > sqlAllDatabases.txt
複数のデータベースを指定してバックアップする場合はターミナル上で以下のコマンドを入力
(パスワードを求められた場合、入力し Enter キーを押下)
mysqldump --user="ユーザ名" --host="ホスト名" --password --databases "データベース名"... > "ファイル名"
/* (例) rootユーザーで管理されている localhost 上のデータベース db1, db2, db3 を、sqlDatabases.txt というファイル名ででバックアップを作成する場合 */
mysqldump --user=root --host=localhost --password --databases db1 db2 db3 > sqlDatabases.txt
/* (省略形) */
mysqldump -uroot -hlocalhost -p -B db1 db2 db3 > sqlDatabases.txt
バックアップの際に使える便利なオプション
上記の基本コマンドに加えて、状況に応じて役立つオプションコマンドを紹介します。
(以下のオプションを上記に追加してください)
・データベース定義とテーブル定義のみ (データなし) バックアップを取る場合
--no-data (-d)
・データベース定義のみバックアップする場合
--no-create-info (-t)
・テーブル定義のみバックアップする場合
--no-create-db (-n)
Database を復元
バックアップしたデータベースを復元する場合は、ターミナル上で以下のコマンドを入力
mysql --user="ユーザ名" --host="ホスト名" --password < "ファイル名"
/* (例) rootユーザーで管理されている localhost に sqlAllDatabases.txt というバックアップファイルを復元する場合 */
mysql --user=root --host=localhost --password < sqlAllDatabases.txt
/* (省略形) */
mysql -uroot -hlocalhost -p < sqlAllDatabases.txt
Table をバックアップ
テーブル (複数可) をバックアップする場合はターミナル上で以下のコマンドを入力
(パスワードを求められた場合、入力し Enter キーを押下)
mysqldump --user="ユーザ名" --host="ホスト名" --password "データベース名" "テーブル名 (複数可)" > "ファイル名"
/* (例) rootユーザーで管理されている localhost 上の DB1 データベースから table1, table2, table3 を、sqlTables.txt というファイル名ででバックアップを作成する場合 */
mysqldump --user=root --host=localhost --password DB1 table1 table2 table3 > sqlTables.txt
/* (省略形) */
mysqldump -uroot -hlocalhost -p DB1 table1 table2 table3 > sqlTables.txt
バックアップの際に使える便利なオプション
上記の基本コマンドに加えて、状況に応じて役立つオプションコマンドを紹介します。
(以下のオプションを上記に追加してください)
・テーブル定義のみバックアップする場合
--no-data (-d)
・データのみバックアップする場合
--no-create-info (-t)
Table を復元
バックアップしたテーブルを復元する場合は、ターミナル上で以下のコマンドを入力
mysql --user="ユーザ名" --host="ホスト名" --password "データベース名" < "ファイル名"
/* (例) rootユーザーで管理されている localhost 上の DB1 データベースに sqlTables.txt というバックアップファイルを復元する場合 */
mysql --user=root --host=localhost --password DB1 < sqlTables.txt
/* (省略形) */
mysql -uroot -hlocalhost -p DB1 < sqlTables.txt
以上が MySQL での Database と Table のバックアップ及び復元の基本コマンドです。
mysqldump には他にも便利なオプションコマンドがあるので、気になる方は MySQL の web ページを参照してみてください!

Comments