以下のコードを使用して、phpスクリプトを使用してデータベースをバックアップしていますが、サイズが0KBのファイルを取得しています。すべてのルーチンと関数を含むデータベース全体をどのようにバックアップできますか?
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname='mydatabase';
$toDay = date('d-m-Y');
//exec("mysqldump --user=$dbuser --password='$dbpass' --Host=$dbhost --single-transaction $dbname > D:\Sql_Backups/".$toDay."_DB.sql");
//exec('mysqldump --user=$dbuser --password=$dbpass --Host=$dbhost $dbname > D:\Sql_Backup/file.sql');
exec ("mysqldump --routines --h $dbhost --u $dbuser --p $dbpass --single-transaction $dbname > D:\Sql_Backup/db3_backup.sql" >
出力用に0KBファイルを取得する理由は、mysqldumpの構文エラーのためです。
あなたはこれを問題に持っています
exec ("mysqldump --routines --h $dbhost --u $dbuser --p $dbpass --single-transaction $dbname > D:\Sql_Backup/db3_backup.sql" > ...
-h
、-u
、-p
から余分なダッシュを削除します
exec ("mysqldump --routines -h $dbhost -u $dbuser -p $dbpass --single-transaction $dbname > D:\Sql_Backup/db3_backup.sql" > ...
コメントアウトした最初の2つのコマンドには、オプションを入力するときに2つのダッシュがあります。構文のその部分は正しいです。
D:/Sql_Backup/db3_backup.sql
D:\Sql_Backup\db3_backup.sql
D:\\Sql_Backup\\db3_backup.sql
mysqldump.exe
が%PATHにあることを確認してください。そうでない場合は、次のようにして絶対パスを使用する必要があります。
exec( "D:\ Program Files\MySQL\MySQL 5.x Server\bin\mysqldump --routines --h $ dbhost --u $ dbuser --p $ dbpass --single-transaction $ dbname> D:\ Sql_Backup /db3_backup.sql "> ...
これをphpで書く方法はわかりませんが、mysqldumpコマンドを次のように書く必要があります。3つのコマンドを書く必要はありません。
mysqldump --user=root --password=root --Host=localhost --single-transaction --routines db_name > db_name.sql
[〜#〜]更新[〜#〜]
ここでやったのはphpスクリプトです
<?php
define("BACKUP_PATH", "/home/abdul/");
$server_name = "localhost";
$username = "root";
$password = "root";
$database_name = "world_copy";
$date_string = date("Ymd");
$cmd = "mysqldump --routines -h {$server_name} -u {$username} -p{$password} {$database_name} > " . BACKUP_PATH . "{$date_string}_{$database_name}.sql";
exec($cmd);
?>
20140225_world_copy.sql
に/home/abdul/
という名前のバックアップファイルを生成します
参考までに This link。 を見てください。
次の構文を使用する必要があります:
ルーチンも含めたフルダンプ
mysqldump --routines> outputfile.sql
ルーチンをダンプするには
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt> dumpfile.sql
-オプション--routinesはバージョン5.0.13から使用できます。 -バックアップユーザーには、ルーチンを読み取る権限が必要です。