MySQLのバックアップ取得方法

MySQLを使ってシステム開発している際に、バックアップをとったり、データをインポートすることがよくありますが、バックアップやインポートの時のコマンドをよく忘れてしまうので、バックップとリカバリのコマンドをまとめました。

バックアップ

MySQLの全てのデータをファイルに出力する

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

データベースに入っている全てのデータのバックアップを取ることができます。

特定のデータベースのデータをファイルに出力する

mysqldump -u root -p database_name > dump.sql

これで特定のデータベース(database_name)のデータだけバックアップを取得できます。

特定のデータベースの特定のテーブルのデータをファイルに出力する

mysqldump -u root -p database_name table_name1 table_name2 > dump.sql

これで特定のデータベース(database_name)の「table_name1」と「table_name2」のテーブルのデータだけバックアップを取得できます。

文字化けする場合

文字化けする場合は「–default-character-set」というオプションを追加して実行します。

mysqldump --default-character-set=utf8 -u root -p database_name > dump.sql

リカバリ

バックアップで取得したファイルをインポートします。

特定のデータベースにデータをインポートする

mysql -u root -p database_name < dump.sql

データベース名を指定することで、特定のデータベース(database_name)にデータをインポートできます。

特定のテーブルにのみインポートを行いたい場合は、バックアップファイルを編集し、特定のテーブルのインポート部分のみを抜き出すか、あらかじめ特定のテーブルのみのバックアップファイルを作成した上で、上記のコマンドを実行する必要があります。

コマンドにて、インポートするテーブルを指定することはできません。

最後に

データベースを利用したシステムを開発していると、データのバックアップやリカバリは必須なので、ぜひ覚えておきたいですね。

データベースによってもバックアップやリカバリの手段が異なるので、そういった違いもきちんと理解しておきたいです。