2013-10-12 33 views
0

我有一个问题,当恢复数据库文件。下面是脚本,我用它来恢复:命令恢复MySQL数据库备份在PHP

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpwd = ""; 
$dbname = "fhc_test"; 

$dumpfile = "backup/".$_GET['id'].".sql"; 

exec("C://xampp/mysql/bin/mysql -u $dbuser -p $dbpwd $dbname < $dumpfile"); 
?> 

下面是我用做备份的脚本:

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpwd = ""; 
$dbname = "fhc"; 
date_default_timezone_set("Asia/Singapore"); 

$dumpfile = "backup/". $dbname . "_" . date("d-m-Y_H_i_s") . ".sql"; 

exec("C://xampp/mysql/bin/mysqldump --opt --host=$dbhost --user=$dbuser --password=$dbpwd $dbname > $dumpfile"); 
?> 

没有备份-ING的文件时,发现了问题。当我复制n手动将备份内容粘贴到数据库中时,它可以完美恢复而没有问题。但是,当我运行恢复脚本来执行还原时,该文件会持续加载很长时间而不会提示任何错误。所以,我停止了加载,并且好像没有表格被恢复到数据库中。

当我尝试从cmd运行脚本时,可以完全快速地完成还原。在这种情况下,我把备份文件在同一文件夹中的mysql.exe

这是我做的命令,在CMD:

C:\xampp\mysql\bin>mysql -u root -p fhc_test < fhc.sql 

谁能帮我找出是什么问题我有我的恢复脚本? bcos我做了这么多的检查,似乎代码没有错误。我是否需要将c:/ xampp/mysql/bin中的mysql.exe文件复制到我放置php文件的文件夹中?

我真的不知道我要做什么。

+0

得到它的工作alr。 – Verlee

+0

是否在mysql命令行中的-p之后有一个空格? – Cwissy

+0

@Cwissy不,它是bcos我的phpmyadmin没有密码,所以不需要-p – Verlee

回答

0

既然你使用:

C:\xampp\mysql\bin>mysql -u root -p fhc_test < fhc.sql 

它是你与尝试root用户。不是phpmyadmin用户。所以你需要使用-p选项给root提供密码。