[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: system() возвращает false при запуске mysqldump
toilet_patrol
Вот, тренируюсь на локалхосте бекапить базу данных gallery. Через консоль все работает, создается файл с командами, а вот если использовать php... system() все время возвращает ложь, ума не приложу, что же я делаю не так. Файл bckp.sql создается, но пустой.


$command = "mysqldump -uroot gallery > bckp.sql";
if(system($command)) echo "OK";
else echo "Not OK";


В чем тут может быть ошибка? Какую-нибудь отладочную информацию из system() вытащить можно?



Спустя 3 часа, 46 минут, 38 секунд (9.01.2010 - 06:41) VolCh написал(а):
Попробуй $command = "mysqldump -uroot gallery > bckp.sql 2> bckp.log";

P.S. А root без пароля? blink.gif blink.gif

Спустя 5 часов, 20 минут, 57 секунд (9.01.2010 - 12:01) toilet_patrol написал(а):
Root без пароля (это сервер на моем компьютере, зачем там пароль). В полученном логе на клингонском языке было написано (ниже приведена расшифровка):
Цитата
"mysqldump" ­е является в­утре­­ей или в­еш­ей
ком ­дой, испол­яемой прогр ммой или п кет­ым ф йлом.

Несколько неожиданно smile.gif. Я не видел никакого иного способа вызова mysqldump через функцию system(). Есть идеи?

Спустя 2 минуты, 20 секунд (9.01.2010 - 12:04) VolCh написал(а):
путь укажи smile.gif или в PATH внеси

Спустя 13 минут, 4 секунды (9.01.2010 - 12:17) toilet_patrol написал(а):
что значит внести в PATH? (то есть само действие я понимаю, но не знаю, что подразумевается под PATH)

Спустя 5 минут, 23 секунды (9.01.2010 - 12:22) VolCh написал(а):
PATH - пути, которые просматривает ОС, если путь к исполняемому файлу не задан явно и такого файла нет в текущем каталоге.

В консоли набери сначала PATH, а потом что-то вроде PATH "C:\Program Files\MySQL\";%PATH%

Спустя 6 минут, 13 секунд (9.01.2010 - 12:28) toilet_patrol написал(а):
То есть обязательно указывать полный путь? Мне кажется, это костыль...

Спустя 34 минуты, 4 секунды (9.01.2010 - 13:03) VolCh написал(а):
Или полный путь, или менять каталог, или настраивать ОС (через PATH). Хотя, может быть, можно получить путь к бинарникам мускула через окружение и/или переменные самого мускула.

Спустя 9 часов, 42 минуты, 28 секунд (9.01.2010 - 22:45) kirik написал(а):
Или сделать так (для *nix серверов):
$(whereis -b mysqldump | awk '{ print $2 }') -uroot gallery > bckp.sql

Спустя 1 час, 6 минут, 8 секунд (9.01.2010 - 23:51) toilet_patrol написал(а):
Не работает. Даже лог не записывается (если добавить 2> bckp.log в конец строки). Какую-то обратную связь получить можно от функции system()?

Получил результат, когда ввел абсолютный путь к утилите mysqldump (d:/.../mysqldump.exe). Но это же неправильно, даже не представляю как использовать такой скрипт на настоящем сервере.

Есть ли способ как-то найти относительный путь к утилите?

Спустя 3 часа, 30 минут, 4 секунды (10.01.2010 - 03:21) VolCh написал(а):
toilet_patrol Ну почему неправильно? В том же PHP в настройках указывается путь к sendmail

Спустя 2 минуты, 47 секунд (10.01.2010 - 03:24) kirik написал(а):
Цитата (toilet_patrol @ 9.01.2010 - 15:51)
Есть ли способ как-то найти относительный путь к утилите?

Зачем относительный? И чем не подходит вариант с whereis?

Спустя 3 минуты, 42 секунды (10.01.2010 - 03:28) VolCh написал(а):
kirik
судя по путям там винда smile.gif

Спустя 7 минут (10.01.2010 - 03:35) toilet_patrol написал(а):
Lа, винда. whereis, видимо, это их *nix среды комманда?)

VolCh, ну как зачем? А как же я на сервере провайдера укажу путь к mysqldump?

Спустя 4 часа, 27 минут, 53 секунды (10.01.2010 - 08:03) VolCh написал(а):
toilet_patrol
Цитата (kirik @ 9.01.2010 - 22:45)
Или сделать так (для *nix серверов):

$(whereis -b mysqldump | awk '{ print $2 }') -uroot gallery > bckp.sql




И что значит как? заменишь свое "C:\\...." на православное "/usr/bin/" smile.gif Можно в конфиге приложения сделать константу/переменную. И, кстати, если речь про обычный шаред хостинг, то очень часто на них system и прочее вообще запрещены.

Спустя 1 час, 41 минута, 13 секунд (10.01.2010 - 09:44) kirik написал(а):
Цитата (VolCh @ 9.01.2010 - 19:28)
судя по путям там винда

Там что-то писали про "настоящий сервер", вот эт для него smile.gif

Спустя 1 час, 16 минут, 26 секунд (10.01.2010 - 11:00) toilet_patrol написал(а):
Хорошо, спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.