2009-10-21 5 views
1

Обновление: Наконец-то эта работа работает, но все еще не уверена, в чем проблема. Я использую wamp-сервер, к которому я обращаюсь через сетевую папку.mysqldump and wamp

Проблема, которая все еще существует, заключается в том, что для выполнения mysqldump мне нужно получить доступ к файлу php с фактического компьютера, который используется для размещения сервера WAMP.

Конец обновления

Я бегу сервер WAMP и пытается использовать туздЫшпр для резервного копирования базы данных MySQL у меня есть. Ниже приведен код PHP, который я использую для запуска mysqldump.

exec ("mysqldump backup -u $ user -p $ pass> $ sql_file");

Когда я запускаю сценарий, страница просто загружается inifnately и резервная копия не создается.

Пустой файл создается, поэтому я знаю, что что-то происходит.

Дополнительно:

* exec() is not disabled 
* PHP is not running in safe mode 

Любые идеи ??

Win XP, WAMP, MYSQL 5.0.51b

+0

Я попытался подключиться к базе данных с помощью MYSQL Administrator (GUI Tools), и я получаю «Номер ошибки MYSQL 2003 Не удается подключиться к серверу MySQL на localhost (10061)». Кто-нибудь знает, как это решить ??? – Adam

ответ

1

туздЫшпр, вероятно, превысит максимальное время PHP должен работать на вашей системе. Попробуйте использовать команду в cmd или увеличьте max_execution_time в php.ini.

0

У меня было то же самое, что и раньше. Сотрудник указал мне на инструменты MySQL GUI, и я делал резервные копии с этим. Браузер запросов, который поставляется с ним, тоже хорош.

MySQL GUI tools

0

Это может помочь взглянуть на выходе из Stderr туздЫшпра:

$cmd = "mysqldump backup -u$user -p$pass 2>&1 > $sql_file"; 
exec($cmd, $output, $return); 
if ($return != 0) { //0 is ok 
    die('Error: ' . implode("\r\n", $output)); 
} 

Также вы должны использовать escapeshellarg() если $user или $pass являются поставляемым пользователем.

+0

Я добавил этот код в свой скрипт, но я до сих пор не получаю никакой информации об ошибке. Сценарий никогда не заканчивается !!! Я использовал set_time_limit (30); перед скриптом, но это, похоже, не имеет никакого эффекта. – Adam

0

Я также боролся с использованием утилиты mysqldump. Я несколько вещей, чтобы проверить/попробовать по своему опыту:

  • Установлен ли ваш сервер, чтобы программы запускали программы с помощью команды exec? (Мой сервер веб-хостинга не позволяет мне.) Протестируйте с помощью другой команды.

  • Установлена ​​ли утилита mysqldump? Обратитесь к whereis mysqldump.

  • Попробуйте добавить оптимизируют аргумент --opt

1

Вы уверены, что $pass определен и не имеет пробел в начале?

Если бы это не так, mysqldump ожидал ввода пароля в командной строке.

 Смежные вопросы

  • Нет связанных вопросов^_^