問題
PHPでデータベースのバックアップを作成するには?
解決策
「mysqldump」を使用します。
PHPでデータベースのバックアップを作成する
PHPでデータベースのバックアップを作成するには、「mysqldump」を使用します。
今回はそれを使用し、MySQL内の全てのデータベースのバックアップを行う記述例をご紹介します。
「mysqldump」の使用例
「mysqldump」の使用例はこちらになります。
基本的な記述例
$command = "mysqldump 'データベース名' --host='MySQLのホスト名' --user='MySQLのユーザー名' --password='MySQLのパスワード' > 'バックアップファイルのパス'";
system($command);
MySQLに設定してある全データベースのバックアップを行う記述例
- バックアップ格納用のディレクトリを事前に用意しておきます。
- さらに事前にホスト名、ユーザー名、パスワードを設定して、接続の際に指定します。
- そしてMySQLに接続し、一通りのデータベースにアクセスし、バックアップファイルを作成して先ほどのディレクトリの中に格納していきます。
$dbHost = "MySQLのホスト名";
$dbUser = "MySQLのユーザー名";
$dbPass = "MySQLのパスワード";
$dbc= mysqli_connect($dbHost, $dbUser, $dbPass);
if(!$dbc){
// MySQLに接続できなかったら
die("MySQL接続失敗: ".mysql_error());
}else{
// MySQLに接続できたら
$res = mysqli_query($dbc,"SHOW DATABASES");
$folderPath = "フォルダパス";
$filePath = $folderPath."date".date('ymd').'_'.date('His').'/';
mkdir($filePath, 0755);
while ($row = mysqli_fetch_assoc($res)) {
$fileName = $row['Database'].'_'.date('ymd').'_'.date('His').'.sql';
$dbName = $row['Database'];
$command = "mysqldump ".$dbName." --host=".$dbHost." --user=".$dbUser." --password=".$dbPass." > ".$filePath.$fileName;
system($command);
}
}
参考ページ
以下のサイトが、より詳しく解説してくれています。
【XserverでPHP+mysqldumpコマンドを使ってデータベースのバックアップを取る方法 | ITキヲスク】
http://smkn.xsrv.jp/blog/2011/07/way-of-use-mysqldump-with-php-in-xserver/
コメント