mysqldump не работает с PHP, просто в командной строке

0

Я пытаюсь выполнить эту команду с помощью php:

system ('mysqldump -u myUser myDbname | mysql -u myUser -A myDbBackupName');

Это не возвращает ошибку, но ничего не делает. Эта же команда, выполняемая на сервере по командной строке, отлично работает. Я использую.my.cnf, и я настроил пользователя на mysql, mysqldump и клиент. Я не знаю, что происходит. Может кто-нибудь мне помочь?

  • 2
    использовать $last_line = system('mysqldump -u myUser myDbname | mysql -u myUser -A myDbBackupName'); чтобы увидеть, есть ли неожиданный вывод. Я думаю, что команды mysql не в пути
  • 0
    Return - пустая строка. Как я уже сказал, команда работает нормально, но когда я использую ее с php, ничего не происходит. Я думаю, что эта проблема может быть настройка моего сервера, я не уверен.
Показать ещё 5 комментариев
Теги:

1 ответ

0

Я решил эту проблему. Поместите это 2> & 1 в конце команды, чтобы принудительно вернуть результат метода exec() или system(), чтобы облегчить отладку.

Правильная команда mysql не имеет пробела между -p [пароль]. На самом деле пароль необходим, независимо, если вы используете архив.my.cnf

Как это:

mysqldump -u пользователь -p пароль myDbName | mysql -u пользователь -p пароль myDbBackupName

Ещё вопросы

Сообщество Overcoder
Наверх
Меню