执行mysqldump的权限有关问题

执行mysqldump的权限问题
打算在php页面通过按钮点击,实现整个数据库的备份
$tmpname= "wholesystem.sql ";
unlink($setupdirection. "/tmp/$tmpname ");
$command= "mysqldump --opt --default-character-set=latin1 -u $dbusername -p ".$dbuserpass. " $dbnames > ".$setupdirection. "/tmp/$tmpname ";
system($command);
download($setupdirection. "/tmp/ ",$tmpname, $tmpname);

$command打印出来的内容在命令行中进入mysql的安装路径的bin下,执行成功!!
但通过以上代码,输出的总是一个空的sql文件
我知道原因是mysqldump直接在命令行中执行,而不是内部命令,必须进入mysql的安装路径的bin下执行才行

难道非要把mysql安装路径存下来?以后系统移植就麻烦了
请问有没别的办法让$command运行啊?

------解决方案--------------------
既然考虑系统移植,那就应该指定全路径,不同的系统,甚至不同的安装肯定会把命令放到不同的路径下,包括你的目的目录,不同的系统肯定不一样。

建议你考虑用show create table加上select into outfile,然后用load data infile。
------解决方案--------------------
不知道楼上说的是什么意思,
怎么需要多次 运行?
在多个数据库中 ?

mysqldump -uuser -ppass -h hostname databasename tablename1 tablename2 ...
这样可以备份多个表的啊.

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: