直接上代码
public function dataBackup(){
$doc_root=$_SERVER['DOCUMENT_ROOT'];
$file_path_name=$doc_root.'/sqlbackup'; //保存到的路径
$name='backup_'.date('YmdHis').".sql";
if(!file_exists($file_path_name)){mkdir($file_path_name,0777);}
$mysqldump_url='G:phpstudyPHPTutorialMySQLinmysqldump.exe';//mysqldump.exe的绝对路径,安装mysql自带的有,可以搜索一下路径
$host='127.0.0.1';//数据库所在的服务器地址
$User='root';//数据库用户名
$Password='root';//数据库密码
$databaseName='kuer';//数据库名
$process=$mysqldump_url." -h".$host." -u".$User." -p".$Password." ".$databaseName." >".$file_path_name."/".$name;
$er=system($process);//system()执行外部程序,并且显示输出
if($er!==false){
echo json_encode('success!');
}else{
echo json_encode('error!');
}
}
注:本地环境测试这个是可以的,上到linux环境后需要改一下MySQL文件的路径,$mysqldump_url路径改为
$mysqldump_url='/usr/bin/mysqldump';
就可以了。
在Linux上运行是显示成功但是没有sql文件
给文件夹赋权777还是没有
之后看了一下报错 :system() has been disabled for security reasons
百度一下解决
1、Warning: system() has been disabled for security reasons
该错误是由于服务器安全配置将system函数关闭了,编辑php.ini查找 disable_functions 将等号后面的 system 去掉即可。