MySQLデータのバックアップ方法

(※このページは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

タイトルとURLをコピーしました