簡體   English   中英

MySQL:mysqldump生成數據庫備份

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM