Здесь у вас есть команда, которая работает неправильно. Самое лучшее, что нужно сделать, это захватить stderr (где идут сообщения об ошибках) и посмотреть, что такое выход. Другое замечание - переменные среды будут разными - например, PATH (ссылка на @Joshua_Martell выше).
Используйте эту команду, чтобы захватить поток ошибок и увидеть сообщения об ошибках, что в настоящее время производится:
/usr/bin/mysqldump -uguku -pjustbe repadmin > back-up.sql 2> mysqldump.err
Это также использует полный путь к mysqldump
(используйте правильный путь). Вероятно, вы также должны добавить путь к back-up.sql
и, в данном случае, к mysqldump.err
- не предполагайте, что PHP будет работать в каталоге, который вам нужен, поскольку он может изменить.
Сначала вы должны увидеть, работает ли: mysqldump -uroot -p repadmin на консоли работает. mysql_connect, mysql_select_db, ваши действия не имеют отношения к вызову system(). 2 разных вещи. – spotman
он отлично работает с консолью, это не из сценария php :(, это строка, которая работала на консоли: «mysqldump -uguku -pjustbe repadmin> back-up.sql», а в разделе " bin ", создается файл с этим именем, и он работает. Когда я запускаю скрипт на странице PHP, создается файл« back-up.sql », но внутри него нет кода. –
' -p' будет запрашивать для пароля, если вы не дадите ему значение. В настоящее время вы не придаете ему значения в коде, который у вас выше. –