window xp php exec mysqldump备份

感谢:转http://www.cnfos.com/?p=543 

发表于   马煜 原文附后面:

验证了一下!

<?
$dbhost = "localhost"; //数据库主机名 
$dbuser = "root"; //数据库用户名 
$dbpass = "123456"; //数据库密码 
$dbname = "test"; //数据库名 


/*****************************************
*
*可获得数据库的结构、数据、视图、触发器、存储过程
*
******************************************/
$comm_dir = "d:/APMServ5.2.6/MySQL5.1/bin/";//mysqldump所在路径:mysql/bin
$command=  "mysqldump -u$dbuser -p$dbpass --default-character-set=utf8 --opt --triggers -R -x $dbname";//备份命令,这个应该更不错。。。为什么没有变绿色
//"mysqldump --add-drop-table -u$dbuser -p$dbpass db5>1.sql";//备份命令

$file_dir = "D:/APMServ5.2.6/www/htdocs/backupfile/";//备份文件路径 $file_name = date("Yms-His").".sql";//备份文件名 $link = @mysql_connect($dbhost,$dbuser,$dbpass) or die ('Could not connect to server.');//连接数据库 mysql_query("use uco",$link); mysql_query("set names utf8",$link); exec($comm_dir.$command.'>'.$file_dir.$file_name,$arr,$i);//执行备份命令 ?>

 

原文:

用php写一个数据备份的功能。他的做法是使用php的exec函数执行mysqldump命令,进行备份。代码:

<?php
exec( ‘mysqldump -uroot -p123456 mysqldb>d:/bak/1.sql’, $arr, $i );
echo $i;
?>

如果成功页面应该输出0的,可是一直输出1,目录下也生成文件1.sql了,但是0字节,空的。

我在自己电脑上执行,没有问题,可是我的是linux系统。和系统有关系?
重启电脑切换到win下,遇到的情况和同事一样,正在思索,想到了会不会是路径的问题,改写命令如下:

<?php
exec(‘d:/mysql5/bin/mysqldump mysqldb>d:/bak/1.sql’,$arr,$i);
echo $i
?>

果然,输出0,而且d:/bak目录下生成的1.sql文件也有内容了。

posted @ 2012-06-04 13:08  苏梳  阅读(352)  评论(0编辑  收藏  举报