【问题标题】:Getting 0KB of size file while backup mysql database using mysql dump使用 mysql dump 备份 mysql 数据库时获取 0KB 大小的文件
【发布时间】:2014-01-04 11:17:33
【问题描述】:

我正在使用以下代码使用 php 脚本备份我的数据库,但我得到的是 0KB 大小的文件。 如何备份包含所有例程和函数的完整数据库?

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname='mydatabase';
$toDay = date('d-m-Y');
//exec("mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost --single-transaction $dbname > D:\Sql_Backups/".$toDay."_DB.sql");
//exec('mysqldump --user=$dbuser --password=$dbpass --host=$dbhost $dbname > D:\Sql_Backup/file.sql');
exec ("mysqldump --routines --h $dbhost --u $dbuser --p $dbpass --single-transaction $dbname  > D:\Sql_Backup/db_backup.sql");

how to create a backup database script in php and zip it How to backup MySQL database in PHP? Backup a mysql database and download as a file

【问题讨论】:

  • 任何人给我建议来解决我的问题..
  • 如果使用双引号,Windows 路径必须将反斜杠 ` \ ` 转义为 ` \\ `。除此之外,你得到什么错误? echo exec(... 打印什么?您可以通过同一用户的命令行点击命令吗? > 不使用管道 STDERR 是吗?你有日志文件吗?
  • @DanFromGermany echo exec(..) 没有打印任何东西。它没有返回任何错误..

标签: php mysql mysqldump


【解决方案1】:

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

【讨论】:

  • 您能否举个例子说明您的建议。
  • @Sumitpatel 这是我很久以前在stackoverflow.com/q/26749853/4216992 遇到的问题,关于第 2 - 5 点,您可以参考我上面提供的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多