сделать дамп базы своим php - скриптом

  • Автор темы trompert
  • Дата начала

trompert

Guest
сделать дамп базы своим php - скриптом

Задача - сделать дамп базы в автоматическом режиме php скриптом.
exec("mysqldump -u dbadmin --password=gobon -h ns.local --add-drop-table asompi > test/db/read/dump_last.sql");

никакого дампа не создает...
как можно сделать?
 

Krisha

pain in the neck
я делал так:

$string = "/usr/bin/mysqldump --add-locks --add-drop-table -l -hlocalhost -uLogin -pPassword database > PATH_FOR_DUMP_DIR_AND_DUMP_FILE_NAME";

system($string,$result);

ессно тебе нужно создать папку для дампа и поставить на нее соответствующие права, и ессно нада выяснить путь к мускулу (в шеле locate mysqldump)
 

trompert

Guest
Originally posted by Krisha
я делал так:

$string = "/usr/bin/mysqldump --add-locks --add-drop-table -l -hlocalhost -uLogin -pPassword database > PATH_FOR_DUMP_DIR_AND_DUMP_FILE_NAME";

system($string,$result);

тут в ирке посоветовали еще делать echo(`/usr/bin/mysqldump --add-locks --add-drop-table -l -hlocalhost -uLogin -pPassword database > PATH_FOR_DUMP_DIR_AND_DUMP_FILE_NAME`);

результат одинаковый - создается пустой файл. ЧТо делать?
 

confguru

ExAdmin
Команда форума
Проверить права на
/usr/bin/mysqldump

P.S. я делал по другому - вызывал из крона
шелл скрипт
 

Cid

...двинутый новичок
А ты попробовал просто из шелла запускать сию конструкцию ?
Апач, наверное, бегает под nobody ? Тогда естественно, что mysqldump не стартанет.

Кстати, замени, на всяк. случай -u на --user=(username), а -h на --host=(hostname)

mysqldump --user=dbadmin --password=gobon --host=ns.local --add-drop-table asompi > test/db/read/dump_last.sql

Не забудь в exec и system escapeshellcmd()/escapeshellarg() вызвать.
 

Cid

...двинутый новичок
И еще, кстати, между -u и имененм пользователя пробелов быть не должно (это и к -h и к -p относится)
 

trompert

Guest
Заработала!

Она вертиться! Большое спасибо!
 
Сверху