我的系统:Ubuntu 11.10,LAMP Stack。
问题:
我在终端中运行以下命令,它会正确备份。
mysqldump -u root dbBugTracker > BAK/dbw.sql
但是我将它包含在我的 php 代码中,如下所示,它不起作用。
exec('/usr/bin/mysqldump -u root dbTracker > BAK/dbT.sql');
尖端:
- 我尝试在 exec 中添加第二个参数,但除了单词 Array 之外什么都没有显示。我把它打印出来,但里面什么都没有。
- 文件 dbw.sql 实际上是由 exec 函数创建的,但它是 0 字节。
- 我尝试使用完整路径而没有使用 mysql,并且看到了相同的结果。即0字节。
- 文件夹BAK在我的项目文件夹中,我什至给了它 777 权限。
- 甚至尝试了不同的文件名和数据库,但结果是一样的。
我很感激对此的任何投入。谢谢!
更多信息:我将2>&1添加到 exec 行,现在该文件包含一些文本,但不包含 DB 转储。这是一个错误,我不知道如何处理:(这是错误
mysqldump:得到错误:1045:尝试连接时用户'root'@'localhost'的访问被拒绝(使用密码:NO)所以这就是输出文件(dbw.sql)现在包含的内容。再一次,当我从终端运行转储时它工作正常。