最近用php写一个数据备份的功能。做法是使用php的system函数执行mysqldump命令,进行备份。代码:
<?php
system('mysqldump -u root -p 123456 exp>D:/bak/exp.sql', $i);
var_dump($i);
如果成功页面应该输出0的,可是一直输出1,目录下也生成文件1.sql了,但是0字节,空的。
解决办法:
1. 去除空格(-u跟用户名的空格,-p跟密码的空格):system('mysqldump -uroot -p123456 exp>D:/bak/exp.sql', $i);
2. mysqldump.exe文件的路径问题,在命令中必须指定该文件的路径,且路径中的任何一个文件夹名字中都不能有空格
system('E:/xampp/mysql/bin/mysqldump -uroot -p123456 exp>D:/bak/exp.sql', $i);
3. 这一点必须要注意,mysql的数据库密码一定不能为空,如果密码为空,那么mysqldump 就不可以用了