Mysql

使用 mysql dump 備份 mysql 數據庫時獲取 0KB 大小的文件

  • June 13, 2019

我正在使用下面的程式碼使用 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" > ...

當您拼寫選項時,您註釋掉的前兩個命令有雙破折號。那部分語法是正確的。

其他要檢查的事項

  • 確保在文件上使用相同的斜杠。另外,檢查以下哪一項在 PHP 中正常工作

    • 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 $ 數據庫使用者–p $ dbpass –single-transaction $ 數據庫名 > D:\Sql_Backup/db3_backup.sql” > …

引用自:https://dba.stackexchange.com/questions/59599