服务器环境win2003+Apache+PHP5.2
我通过调用mysqldump来备份和恢复数据库,代码如下:
<%
exec( "D:/Program Files/AppServ/MySQL/bin/mysqldump -h localhost -u root -p password database > d:/database.sql ");
%>
但执行后d:/中是产生database.sql文件了,但文件内无内容,是个空文件。
解决办法:
1. mysqldump -h localhost -u root -p password database > d:/database.sql
这行命令应该这样写
mysqldump -h localhost -uroot -ppassword database > d:/database.sql
-uroot -ppassword -u -p应该和用户名和密码粘在一起, 之间没空格
2.D:/Program Files/AppServ/MySQL/bin/mysqldump
这个是mysqldump.exe文件的路径,但是我的路径名中有空格“Program Files”,这个文件有空格,所以把mysqldump.exe放在项目的根目录,或者放在D:/下也可以
这样就可以成功导出数据了
3.这一点必须要注意,mysql的数据库密码一定不能为空,如果密码为空,那么mysqldump 就不可以用了