执行mysqldump的权限有关问题
程序员文章站
2022-06-14 15:08:31
...
执行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 ...
这样可以备份多个表的啊.
打算在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 ...
这样可以备份多个表的啊.
相关文章
相关视频
上一篇: 加速你的页面--数据压缩
推荐阅读
-
安装 VS2005 SP1 有关问题的解决办法
-
IIS6、IIS7、IIS7.5取消服务器主机空间目录脚本的执行权限的方法
-
asp.net下模态对话框关闭之后继续执行服务器端代码的问题
-
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
-
c# 解决IIS写Excel的权限问题
-
解决安装pycharm后不能执行python脚本的问题
-
linux 可执行文件与写操作的同步问题(文件读写操作产生的锁机制)
-
倒计时cocos定时器schude使用的过程中 帧率浮动较大导致执行时机不准确的问题解决
-
win7系统无法删除文件提示您需要权限来执行此操作的解决方法
-
有关Ajax跨域问题的两种解决方法