我在本地服务器上测试此脚本
$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" ;
}
但是为什么该脚本不会执行并显示错误,尽管来自数据库的所有数据都是真的。
答案 0 :(得分:1)
如果你在localhost上使用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 );
是的,我正在抓取文件。我想你会发现这是存储,电子邮件等的好选择。
编辑---
如果您没有使用密码,则不应使用-p。在这种情况下,你想要改变命令。