レンタルサーバーCPIで、DBのバックアップを取る、ワンライナーのPHPスクリプト。
下記がコード。
<?
system(“/usr/local/mysql5/bin/mysqldump –user=DBユーザ名 –password=パスワード DB名 > /path/to/dump.sql”);
?>
/usr/local/mysql5/bin/mysqldumpは、mysql4を使用している場合は、/usr/local/mysql4/…になる。
/path/to/dump.sqlは出力先までのパス。
事前にecho $_SERVER[“DOCUMENT_ROOT”]で、ドキュメントルートの確認をしておくと良い。
なお、応用として、出力先のパスのみを、dump_monday.sql、dump_tuesday.sql等と変更したものを一週間分作成しておき、cronを使って、曜日指定で定期的に実行させれば、日次バックアップを一週間分自動で取ってくれるので、管理が楽。
なぜこれに至ったかというと、CPIのサーバーは、phpmyadminがデフォルトでインストールされているので、そこからバックアップは取れるのだが、レコード数の多いテーブルの場合、データが多すぎてバックアップが正常に取れないので、「じゃあ、mysqldumpで。」となったってわけ。
たぶんほかのレンタルサーバーでも似たような感じで使える。
ちなみに、上記で取ったバックアップを別のサーバーで復元するには、下記参照。
2018年6月13日補足:
–hostを指定しないと、きちんと実行されない事があるようです。
(サーバーによって個体差がある??)
その場合は、下記のように、–host=localhostを指定します。
<?
system(“/usr/local/mysql5/bin/mysqldump –host=localhost –user=DBユーザ名 –password=パスワード DB名 > /path/to/dump.sql”);
?>
コメントはまだありません