使用mysqldump的Mysql PHP备份数据库

时间:2017-02-17 07:03:34

标签: php mysql

我尝试为我的数据库创建备份。我的数据库是MySQL。我正在使用PHP。我每小时使用一个cron作业来执行此代码。

这是我的代码:

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname='stock';
$backup_file = $dbname . date("Y-m-d-H-i-s") . '.sql';
$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "stock | gzip > $backup_file";
system($command);

问题是我的代码给了我一个空文件如何拥有我的所有数据库?!

1 个答案:

答案 0 :(得分:1)

几年前我也遇到同样的问题/情况。请参阅here。 以下是需要注意的一些事项: -

  1. 必须使用MySQL转储的绝对路径。
  2. 尝试使用--opt(MySQL转储的默认选项)。可以参考http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
  3. 对于选项,如果使用简短形式,则无需( - )。例如: - p。使用完整表格时使用( - )。例如: - 密码。所以使用' -p'而不是' - p' (也适用于其他选项)。
  4. 尝试shell_exec'或者'系统'如果MySQL转储不适用于执行'。
  5. 尽量避免选项和变量之间有空格。例如:-p $ dbpass
  6. *另外请记住,它是否允许系统命令是否可以从PHP执行。