用户名:  密码:   
您当前的位置:首页 > SQL数据库 >  MySql > 

关于PHP代码调用mysqldump备份与恢复mysql数据库

上次修改时间: 2023-09-15 17:35:47      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\SQL数据库相关\mysql相关\      下一页

关于PHP代码调用mysqldump备份mysql数据的

1. 使用下面的代码提示备份失败
<?php
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';
// 数据库备份配置
$hostname = '192.168.13.77';
$username = 'root';
$password = 'root';
$database = 'ctcms';
$backup_path = 'databak';

// 创建备份文件名
$backup_file = $backup_path . '\backup_' . date('YmdHis') . '.sql';
// $backup_file =  'd:\backup_' . date('YmdHis') . '.sql';

// 导出数据库
$command = "mysqldump --opt -h$hostname -u$username -p$password $database > $backup_file";  //这句没有意义,测试用
$command = "C:\wamp\bin\mysql\mysql5.6.17\bin\mysqldump --opt -h$hostname -u$username -p$password $database > $backup_file";

system($command, $output);     //这种方式生成的代码大小为0
exec($command);                //这种方式就正常了

if ($output === 0) {
    echo '数据库备份成功!';
} else {
    echo '数据库备份失败!';
}
echo $command;
?>

2. 怀疑是没有安装mysqldump
 1)注:mysqldump是一个单独的文件,要在cmd下执行,而不能到mysql的命令控制台执行。不能通过点击右击绿色WAMP图标--mysql--Mysql Console打开mysql的命令行控制台中执行,
 2)需要先把mysqldump路径添加到环境变量里,才能在cmd下打开mysqldump,可通过在cmd在执行mysqldump --version查看环境变量有没有安装成功

3. 最后使用如下命令成功
 C:\Users\Administrator>mysqldump --opt -h 127.0.0.1 -uroot -proot ctcms >d:\aa.sql  //成功
 C:\Users\Administrator>mysqldump --opt -h 127.0.0.1 -u root -p root ctcms >d:\aa.sql  //失败 
 注:出错的地方:-uroot -proot //这里的-u和-p和它后面的用户名和密码之间不能有空格


恢复数据库的代码,未测试过
<?php
// 设置数据库连接信息
$hostname = 'localhost';
$username = 'root';
$password = 'your_password';
$database = 'your_database';

// 恢复数据库的 SQL 文件路径
$sqlFile = '/path/to/backup.sql';

// 构建恢复命令
$command = "mysql -h {$hostname} -u {$username} -p{$password} {$database} < {$sqlFile}";

// 执行恢复命令
$output = shell_exec($command);

// 输出执行结果
echo $output;
?>