Heim >Backend-Entwicklung >PHP-Tutorial >执行mysqldump的权限有关问题

执行mysqldump的权限有关问题

WBOY
WBOYOriginal
2016-06-13 10:02:181226Durchsuche

执行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 ...
这样可以备份多个表的啊.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn