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 )にデータをインポートできます。
特定のテーブルにのみインポートを行いたい場合は、バックアップファイルを編集し、特定のテーブルのインポート部分のみを抜き出すか、あらかじめ特定のテーブルのみのバックアップファイルを作成した上で、上記のコマンドを実行する必要があります。
コマンドにて、インポートするテーブルを指定することはできません。
最後に
データベースを利用したシステムを開発していると、データのバックアップやリカバリは必須なので、ぜひ覚えておきたいですね。
データベースによってもバックアップやリカバリの手段が異なるので、そういった違いもきちんと理解しておきたいです。
コメント