[英]MySQL: mysqldump to generate database backup
我已經編寫了以下代碼段,該代碼段生成mysql
數據庫轉儲並將其保存在服務器上 :
public function save_db_backup()
{
$DBUSER=$this->db->username;
$DBPASSWD=$this->db->password;
$DATABASE=$this->db->database;
$filename = $DATABASE . "-" . date("Y-m-d_H-i-s") . ".sql.gz";
$save_path = $_SERVER['DOCUMENT_ROOT'] . '/application/assets/db_backups/' . $filename;
$cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best > " . $save_path;
exec( $cmd );
}
我的另一台服務器上運行正常 。 但是,將站點移到新服務器后,站點突然停止工作,即數據庫備份文件未保存在指定的路徑中。 另外,我檢查了服務器上是否啟用了exec
並且該目錄可讀且可寫 :
is_readable($_SERVER['DOCUMENT_ROOT'] . '/application/assets/db_backups/') // true
is_writable($_SERVER['DOCUMENT_ROOT'] . '/application/assets/db_backups/') // true
我已經檢查過了,數據庫憑據還可以。 我已經嘗試了mysqldump
的路徑,但是也沒有用:
$cmd = "/usr/bin/mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best > " . $save_path;
可能有什么問題?
您應該檢查哪個用戶啟動了該命令,然后檢查該目錄是否可被該用戶讀取和寫入。 如果從PHP腳本啟動它,則可能是原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.