执行mysqldump的权限问题

haojiubujian 2007-08-03 10:01:30
打算在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运行啊?
...全文
788 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haojiubujian 2007-08-05
  • 打赏
  • 举报
回复
不是在cmd中,是用mysql_query实现多个sql语句的执行,在php端实现恢复
gxd305 2007-08-04
  • 打赏
  • 举报
回复
不知道楼上说的是什么意思,
怎么需要多次 运行?
在多个数据库中 ?

mysqldump -uuser -ppass -h hostname databasename tablename1 tablename2 ...
这样可以备份多个表的啊.
iisbsd 2007-08-04
  • 打赏
  • 举报
回复
既然考虑系统移植,那就应该指定全路径,不同的系统,甚至不同的安装肯定会把命令放到不同的路径下,包括你的目的目录,不同的系统肯定不一样。

建议你考虑用show create table加上select into outfile,然后用load data infile。
haojiubujian 2007-08-04
  • 打赏
  • 举报
回复
搞定了,现在可以备份
但是mysql不支持每次执行多条sql语句
导致备份出来的sql文件无法一次性运行
怎么办?
haojiubujian 2007-08-04
  • 打赏
  • 举报
回复
有没有相关代码啊?
select into outfile好像只能导出数据吧,那表模式呢?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧