system ('mysqldump -u myUser myDbname | mysql -u myUser -A myDbBackupName');
Это не возвращает ошибку, но ничего не делает. Эта же команда, выполняемая на сервере по командной строке, отлично работает. Я использую.my.cnf, и я настроил пользователя на mysql, mysqldump и клиент. Я не знаю, что происходит. Может кто-нибудь мне помочь?
Я решил эту проблему. Поместите это 2> & 1 в конце команды, чтобы принудительно вернуть результат метода exec() или system(), чтобы облегчить отладку.
Правильная команда mysql не имеет пробела между -p [пароль]. На самом деле пароль необходим, независимо, если вы используете архив.my.cnf
Как это:
mysqldump -u пользователь -p пароль myDbName | mysql -u пользователь -p пароль myDbBackupName
$last_line = system('mysqldump -u myUser myDbname | mysql -u myUser -A myDbBackupName');
чтобы увидеть, есть ли неожиданный вывод. Я думаю, что команды mysql не в пути