HOME > MySQL

mysqldumpと復元

 特定のデータベースのみバックアップする方法
MySQL の特定のデータベースのデータを dump バックアップするには、次のコマンドで行う。$ mysqldump -u DBユーザ名 -p DB名 > 出力先ファイル名
 mysqldump -u terao -p sankyoSNS > /var/www/vhosts/nsm2.net/sns.sql
mysqldump -u sns -p sns > /home/terao/sns.sql

特定のデータベースのみ復元する方法
特定のデータベースの dump ファイルを、特定のデータベースに復元する方法は次のコマンドでできます。 データの投入先となるデータベースは先に作成しておく必要があります。

mysql -u ユーザー名 -p データベース名 < dumpファイル名

mysql -u terao -p sankyoSNS_test < /var/www/vhosts/nsm2.net/sankyoSNS.sql
mysql -u terao -p sns_test < /var/www/vhosts/nsm2.net/sns.sql

zcatコマンドを使って容量の圧迫を抑える

dump

mysqldump -u terao -p sankyoSNS | gzip > sns.sql.gz

restore

zcat dumpfile.sql.gz | mysql -u username -ppassword database_name
zcat sns.sql.gz | mysql -u terao -p sns

  この方法だと、巨大ファイルの場合エラーで復元できない場合がある。
巨大ファイルの場合、次の方法を利用する。 

○元のサーバでダンプし、別のサーバーへ移行(テスト環境を作る場合も同じ)

  1. 元のサーバー
    mysqldump -u terao -p sns > /home/terao/public_html/dump/sns.sql
  2. 移行サーバー
    cd /tmp
    wget http://papasan.nsm2.net/dump/sns.sql
    mysql -u root -p sns < sns.sql

巨大SQLの復元

  1.  mysqlにコンソールでログイン
    mysql -u terao -p
  2. mysql> USE sankyoSNS
    mysql> SOURCE /var/www/vhosts/nsm2.net/sns.sql

macのMAMPの場合

  1. cd /Applications/MAMP/Library/bin/
  2. ./mysql -u midori -p
  3. mysql> USE sns
  4. mysql> SOURCE /Applications/MAMP/htdocs/sns.sql