MySQLでバックアップ&圧縮をまとめて行うコマンド

今までMySQLでバックアップや復元などの操作をする場合、基本的にphpMyAdminを使ってました。

が、コマンドラインでもMySQLを使えなければということで、簡単にまとめました。

それを自分のメモ的に書いておきます。

バックアップ(mysqldumpのみ)

まずmysqldumpで普通にバックアップを取る場合は以下。

mysqldump -u username -h localhost databasename > mysqldump.sql

上記は個別のデータベースをバックアップする場合で、すべてのデータベースをまとめる場合は以下のように「-A」オプションをつけます。

mysqldump -u username -h localhost -A > mysqldump.sql

よく使うオプションは以下です。実際にはまだまだたくさんあります。

-u : ユーザー名
-p : パスワード
-h : ホスト
databasename : 特定のデータベース
-A : すべてのデータベース

バックアップ&圧縮を同時に行う(mysqldump+gzip)

知ってしまえばあまり難しくはありませんでした。

mysqldumpとgzipをパイプで繋ぐだけです。

個別のデータベースは以下。

mysqldump -u username -h localhost -p databasename | gzip > mysqldump.sql.gz

すべてのデータベースをまとめる場合は以下です。

mysqldump -u username -h localhost -p -A | gzip > mysqldump.sql.gz

復元(mysqlコマンドのみ)

個別のデータベースのみを復元したい場合は以下です。

mysql -u username -p databasename < mysqldump.sql

データベースをまとめたものを、そのまままとめて復元したい場合はdatabasenameを指定せず未入力にするだけでOKです。

mysql -u username -p < mysqldump.sql

オプションは以下。mysqldumpとほとんど変わらないです。当然ながらこちらも他にもたくさんあります。

-u : ユーザー名
-p : パスワード
databasename : 特定のデータベース

解凍&復元を同時に行う(zcat+mysql)

バックアップの時と同様にzcatとmysqlをパイプで繋ぐだけです。

zcat mysqldump.sql.gz | mysql -u username -p databasename
スポンサードリンク

twitterまたはFacebookでもコメントして頂けます