MySQLのmysqldumpでバックアップ&復元を行う方法

2018.4.7

バックアップ

mysqldump のバックアップは、SQL ベースのバックアップが可能です。

存在するデータをすべて SQL にしてテキスト形式に保存できます。

$ mysqldump -u root -x --all-databases > dump.sql

これですべてのデータベースのバックアップが可能です。

特定のデータベースのみのバックアップの場合は、

$ mysqldump -u root [データベース名] > dump.sql

としてバックアップ可能です。

バックアップのときパスワードを指定する方法

下記のようにパラメータを指定したコマンドを実行するシェルを作成して cron で実行することで、自動的にバックアップを行うことができます。

mysqldump -h 127.0.0.1 -u [username] -p[password] --single-transaction [databasename] > [backupfilename]

[username]、[password]、[databasename]、[backupfilename]に環境に合わせた値を指定してください。

ここで、注意点が一つあります。

-p[password]

この部分ですが、-p の後にスペースを入れてはいけません。スペースを入れてしまうと、パスワードを聞いてくるようになります。

リストア

mysqldump のすべてのデータベースのバックアップを復元するには、

$ mysql -u root -p < dump.sql

のように、mysql クライアントにファイルの内容を入力してあげるだけです。

特定データベースのみの復元は

$ mysql -u root [データベース名] < dump.sql

のようにします。