■mysqldump
mysqldump --no-autocommit -u root -p dbname > db.dump scp -r ./db.dump user@123.123.123.123:/home/db.dump
123.123.123.123
cd /home mysql -u root -p --default-character-set=utf8 < db.dump
50MBくらいなら10秒で終わる。ちなみにWHEREで条件を絞ってエクスポートする場合は以下のようにする。
echo "SET NAMES utf8;SELECT * FROM table WHERE hoge = 'fuga'” | mysql -u user -p dbname > /home/piyo.txt;
INTO OUTFILEは権限が必要なので実行できない場合も多々ある。
■バックアップ
以下のようにすることでmysqldumpを利用して定期的にデータベースをbackupできる。
#!/bin/sh TDAY=`date +%Y%m%d` cd /var/www/hogehoge.justoneplanet.info/app/vendors/shells mysqldump --no-autocommit -u root --password=hogehoge dbname > $TDAY.dump
crontab
以下のように記述することで、毎日1:15にバックアップが実行される。
15 1 * * * /var/www/hogehoge.justoneplanet.info/app/vendors/shells/backup.sh