繁体   English   中英

如何使用php脚本导出完整的mysql数据库? 使用“ mysqldump”时出现问题

[英]How to export full mysql database with php script…? Problem in using 'mysqldump'

我正在使用此命令备份我的完整mysql数据库。

$backupFile = $dbname . date("Y-m-d-H-i-s") . '.sql';
$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile";
system($command);

我正在获取空白文件。 我在Windows上使用XAMMP。 我已经用过exec()但也得到了空白文件。 而且在外壳上它已经成功完成了。 这段代码有什么问题。

您能做的最好的事情是检查出了什么问题。 您甚至可能想检查PHP之外的内容,以查看正在做什么。 因此,回显您的$ command并查看它,看它是否正确。 然后在命令行上使用它,看是否可以使用它。

可能的注意点:

  • 您的密码中是否有“奇怪”字符(例如&)? 您可能需要逃脱它们
  • mysqldump命令可用吗? (是在您的PATH中,还是从中运行此文件的目录中
  • 您是否可以执行任何系统/执行命令?
  • 是否允许运行您的php代码(apache?)的用户执行此命令?
  • 运行此代码的用户是否可以在此目录中写入?

要测试当前命令,您可能需要这样做:-用echo替换system命令: echo $command; -运行脚本并复制您在那里看到的命令。 -打开终端。 (开始->运行->“ cmd”)-转到脚本运行所在的目录。 -粘贴/输入命令。 -检查结果。

我不知道没有密码但仍然提供-p选项时会发生什么。 它可能仍然尝试要求输入密码,因为您已表明您想输入密码,但尚未提供。 我不确定这一点,这就是为什么您可能要检查一下。 (@wimvds在注释中确认:如果您提供-p且没有密码,则会出现“密码:”对话框。)

在命令行中,您可以检查需要键入什么命令才能使mysqldump正常工作。 如果可以,请确保您的脚本确实发出了该命令。 然后再次使用脚本进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM