gpt4 book ai didi

php - MySQL:mysqldump 生成数据库备份

转载 作者:行者123 更新时间:2023-11-30 00:08:26 27 4
gpt4 key购买 nike

我编写了以下代码片段,生成 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 脚本启动它,这就是可能的原因。

关于php - MySQL:mysqldump 生成数据库备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24308960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com