备份数据库从PHP
问题描述:
我在本地服务器备份数据库从PHP
$dump_path = "backups";
$host = "localhost";
$user = "root";
$pass = "";
$command=$dump_path.'mysqldump -h '.$host.' -u '.$user.' dental > dental_b.sql';
if (system($command)) {
echo "YES" ;
} else {
echo "Error" ;
}
上测试该脚本,但为什么不是该脚本执行,并显示错误虽然从数据库中的所有数据是真实的。
答
我敢肯定,如果您在本地主机上使用mysqldump,则不需要主机选项。你连接你的命令的方式看起来让我感到困惑。让我告诉你什么对我有用。我一直用这个:
<?php
$user = "root";
$pass = "";
$database = "dental";
// File name
$file_name = 'dental_b.' . date('mdY.Hia') . '.sql.gz';
// Storage directory
$storage_dir = __DIR__ . '/backups';
if(! is_dir($storage_dir))
mkdir($storage_dir, 0777, TRUE);
// Absolute path to new file
$absolute_path = $storage_dir . '/' . $file_name;
// Create the backup file
exec('mysqldump -u ' . $user .
' -p' . $pass .
' ' . $database .
' | gzip > ' . $absolute_path);
是的,我gzipping文件。我想你会发现这是存储,电子邮件一个不错的选择,等
编辑---
如果不使用密码,你不应该使用-p。在这种情况下,你想改变命令。
+0
我很感谢详细的解答 –
你想执行什么命令?现在它是'backupsmysqldump -h localhost -u root dental> dental_b.sql'。你确定'$ dump_path'应该是命令的前缀吗? –
我知道了,但是我需要解决这个问题 –