从PHP生成转储文件

从PHP生成转储文件,php,mysql,Php,Mysql,我尝试使用以下方法从PHP生成mysql转储文件: exec('mysqldump -u root -ppassword maindb > c:\DB_Dump.sql'); 但是,生成的文件为空。有人知道怎么了吗 在cmd中,这是有效的: cd C:\Program Files\MySQL\MySQL Server 5.5\bin更改路径,然后 mysqldump -u root -ppassword maindb > c:\DB_Dump.sql 但我正试图在PHP中实现这一

我尝试使用以下方法从PHP生成mysql转储文件:

exec('mysqldump -u root -ppassword maindb > c:\DB_Dump.sql');
但是,生成的文件为空。有人知道怎么了吗

在cmd中,这是有效的:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
更改路径,然后

mysqldump -u root -ppassword maindb > c:\DB_Dump.sql

但我正试图在PHP中实现这一点。

为了消除最常见的问题:

  • 使用完整路径
  • 将输出发送到可公开写入的目录
计算机中mysqldump的路径似乎有空格。请确保正确引用:

exec('"C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump" -u root -ppassword maindb > c:\\DB_Dump.sql 2> c:\file.err.txt')

mysqldump在您的路径中吗?尝试向命令添加绝对路径
exec('/usr/bin/mysqldump….')
看看这是否有帮助。我尝试了这个exec('C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump-u root-proot-bespoke>C:\\DB\u Dump.sql');但仍然是一样的根目录通常不可由普通用户写入。但我不是以用户的身份执行此操作。这只是上面的一行代码。您是否尝试重定向stderr以查看是否有任何错误<代码>exec('…>c:\DB\u Dump.sql 2>c:\file.err.txt')