У меня возникла проблема при восстановлении файла db. Ниже приведен сценарий, который я использую для восстановления:
<?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("dm-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-файл?
Я действительно не знаю, что мне с этим делать.
Учитывая, что вы используете:
C:\xampp\mysql\bin>mysql -u root -p fhc_test < fhc.sql
это пользовательский корень, с которым вы пытаетесь. Не пользователь phpmyadmin. Поэтому вам нужно использовать параметр -p
чтобы указать пароль для root.