2013-10-12 2 views
0

У меня возникла проблема при восстановлении файла db. Ниже приведен тот сценарий, который я использую для восстановления:команда restore mysql db backup in 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"); 
?> 

Там нет никаких проблем обнаружено, когда резервной инге файл. Когда я копирую n вставляю содержимое резервной копии в базу данных вручную, он может полностью восстановиться без проблем. Но когда я запускаю сценарий восстановления для выполнения восстановления, файл продолжает загружаться так долго, не вызывая никаких ошибок. Итак, я останавливаю загрузку, и кажется, что в базу данных не было восстановлено никаких таблиц.

Когда я пытаюсь запустить скрипт из cmd, восстановление можно выполнить полностью и быстро. В этом случае, я поставил резервный файл в той же папке, как mysql.exe

Это, как я сделать команду в CMD:

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

может кто-нибудь помочь мне выяснить, в чем проблема что у меня есть в моем скрипте восстановления? bcos я сделал так много проверок, и кажется, что с кодом нет ошибки. Мне нужно скопировать файл mysql.exe из c:/xampp/mysql/bin и поместить его в ту же папку, где я поместил свой php-файл?

Я действительно не знаю, что я должен делать с этим.

+0

получил это работал alr. – Verlee

+0

Было ли это, что у вас есть пробел после -p в командной строке mysql? – Cwissy

+0

@ Cwissy no, это bcos, у моего phpmyadmin нет пароля, поэтому нет необходимости иметь -p – Verlee

ответ

0

Учитывая, что вы используете:

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

это суперпользователя вы пытаетесь с. Не пользователь phpmyadmin. Поэтому вам нужно использовать опцию -p, чтобы указать пароль для root.