【问题标题】:Mysql PHP backup database using mysqldump使用mysqldump的Mysql PHP备份数据库
【发布时间】:2017-02-17 07:03:34
【问题描述】:

我尝试为我的数据库创建备份。我的数据库是 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);

问题是我的代码给了我一个空文件我怎样才能拥有我的所有数据库?!

【问题讨论】:

  • @e4c5 很抱歉没有给我答案:(
  • 确实如此。你不应该这样做
  • @e4c5 你能给我解释一下吗??!
  • 请阅读QA,然后你会得到你的解释

标签: php mysql


【解决方案1】:

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

  1. MySQL 转储必须使用绝对路径。
  2. 尝试使用 --opt(MySQL 转储的默认选项)。可以参考http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
  3. 对于选项,如果使用短格式,则不需要(--)。例如:--p。使用完整格式时使用 (--)。例如:--密码。所以使用 '-p' 而不是 '--p' (也适用于其他选项)。
  4. 如果 MySQL 转储在“exec”上不起作用,请尝试“shell_exec”或“system”。
  5. 尽量避免选项和变量之间有空格。例如:-p$dbpass

*还要记住,它涉及到是否可以从PHP执行系统命令的权限。

【讨论】:

  • 非常感谢您解决了我的问题!
猜你喜欢
  • 2011-05-25
  • 1970-01-01
  • 2021-09-12
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多