Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > помогите с backup'ом MySQL базы через php скрипт


Автор: Deniskk 20.5.2008, 18:56
Привет всем, 
Может ли кто нить помочь с такой проблемой? 
Пытаюсь сделать backup MySQL базы данных через php скрипт, используя mysqldump. Скрипт таков: 

Код

<?php 
$host = "hostname"; 
$database = "databasename"; 
$user = "username"; 
$pass = "password"; 

$dbh = mysql_connect($host, $user, $pass) or die ("Can't connect to MySQL"); 
mysql_select_db($database) or die ("Can't connect to db"); 

$bckp_file = $database.date("Y-m-d-H-i-s").".sql"; 
$command = "c/wamp/mysql/bin/mysqldump --add-drop-table --add-drop-database -u $user -p $pass $database > $bckp_file"; 

system ($command); 
?> 

В результате создаеться пустой .sql файл и никакого dump’a в нем нету. Если запускаю содержание переменной $command через коммандную строчку в WinXP получаю полноценны dump. Кто подскажет, где ошибка в скрипте?


 ! 
MoLeX
Модератор: используй кнопку КОД

Автор: comtat 21.5.2008, 14:06
1) Что пишется в логи ??
2) 
Цитата
c/wamp/mysql/bin/

    Думаю что описка... и пропиши путь до MySQL в переменных средах
3) Зачем изобретать велосипед ?? (если конечно не учеба)
    пользуйся http://sypex.net/

А так вроде все нормально ... нужно смотреть логи

Автор: Deniskk 21.5.2008, 23:38
>>comtat

1)Sypex Dumper отличная вещь, я в курсе, пасиба за линк. У меня действительно учеба, курсовик  smile 
2)Сморю логи Apache, он мне такое выдаёт каждый раз:
Код

The system cannot find the path specified.
[Wed May 21 23:32:18 2008] [error] [client 127.0.0.1] File does not exist: C:/wamp/www/favicon.ico, referer: http://localhost/dar/query.php

Прописываю путь до MySQL так:
Код

$command = "%HOMEDRIVE%\wamp\mysql\bin\mysqldump -h $host -u $user -p $database > $bckp_file";

Я наверно криво как то примерную среду прописываю что ли? Подскажи плз. как это сделать правильно
Как путь прописать граматно?

Автор: comtat 22.5.2008, 07:28
Пуск -> Мой компьютер -> Свойства -> Дополнительно -> Переменные среды
в блоке "Системные переменные" выбираешь PATH жмешь Изменить
Вписываешь 
Цитата
C:\wamp\mysql\bin\;

теперь ображаться к утилитам mysql можно так 
Цитата
mysqldump -h $host -u $user -p $database > $bckp_file

Автор: Deniskk 22.5.2008, 13:28
Привет,
тобою выше указанный path прописал и рестартанул PC. После этого запускаю php скрипт, происходит такая фигня: и в Опере и в Эксплорере процесс зависает, так и висит. При этом в Windows Task Manager появляеться процесс mysqldump.exe + в указанной папке появляеться как и раньше пустой .sql файл. Может быть проблема в том что где то в конфигурационных файлах (ака php.ini) стоит какое нибудь ограничение или что то типого того? Не в курсе?  smile  

Автор: comtat 22.5.2008, 14:55
Попробуй запустить свой скрипт через консоль
Цитата

cmd > cd Путь_до_скрипта 
cmd > Путь_до_php/php  скрипт.php

Автор: comtat 22.5.2008, 17:52
а и посмотри в php.ini disable_functions там не должно быть system

Автор: Deniskk 22.5.2008, 19:59
Опаньки
Чувак, ты рулишь  smile 
Через cmd, как ты и писал выше, всё пошло, получаю полноценный dump!
Но теперь вопрос - почему это не работает напрямую из php файла? Где же загвоздка? 
В php.ini disable_functions пусто, ничего не прописано!

Автор: Zzet 19.2.2010, 21:48
Здравствуйте! И все же как сделать такой дамп?

Автор: Zzet 19.2.2010, 22:11
Можно ли сделать так, чтоб дамп производился автоматически через определенный интервал времени?

Добавлено через 12 минут и 16 секунд
Как можно автоматически в мускл делать бекапы? mysql 5.1. J, MySQL Maestro Group 8.3  

Автор: comtat 20.2.2010, 01:12
Цитата(Zzet @  19.2.2010,  22:11 Найти цитируемый пост)
Как можно автоматически в мускл делать бекапы? 

Используй для этих целей cron (Назначенные задания если винда)

Автор: Zzet 22.2.2010, 13:44
Спасибо,comtat! Помог! Но вот в связи с этим возник еще один вопрос : как с помощью Sypex Dumper  сделать дамп(нужно архивирование автоматически каждый день в установленное время). Как в .bat файле это прописать? Насколько я понимаю с помощью Sypex Dumper это можно выполнить только вручную. Или если таковое не возможно, подскажите программу с помощью которой это можно сделать автоматически с архивированием каждый день в установленное время(через планировщик задач устанавливаю триггеры и условия). Очень нужна возможность архивирования...

Добавлено через 1 минуту и 13 секунд
в мускл я этот батник могу прописать... нужно теперь прилепить создание архивов по дням...

Автор: comtat 28.2.2010, 13:46
Цитата(Zzet @  22.2.2010,  13:44 Найти цитируемый пост)
как с помощью Sypex Dumper  сделать дамп

Зачем Dumper ... пользуйся mysqldump. 
В bat-файле в имени бэкапа вставляешь текущюю дату 

Автор: Ипатьев 28.2.2010, 13:58
Цитата(Zzet @  22.2.2010,  13:44 Найти цитируемый пост)
подскажите программу с помощью которой это можно сделать автоматически

Эта программа упоминается в первом сообщении поста двухлетней давности, в который вы решили написать свой вопрос.
Отсюда вывод - поста вы не читали, то есть, смысла писать свой вопрос сюда, а не в отдельным вопросом, не было никакого.

Автор: HARDMID 16.3.2010, 15:20
Цитата(Zzet @  22.2.2010,  13:44 Найти цитируемый пост)
Насколько я понимаю с помощью Sypex Dumper это можно выполнить только вручную


Нуу... вообще-то можно было залезть на офсайт и посмотреть:

Цитата(Сообщение zapimir » 23.02.2010 22:38:02)

Вышла новая beta-версия Sypex Dumper 2.
2.0.6 подеерживает cron также как и 2.0.5
    *Для сохранения задачи просто выберите нужные параметры в интерфейсе и вместо Выполнить нажмите Сохранить, после чего введите имя и описание задачи. Как раз это имя вводите в параметре -j


Цитата(Сообщение zapimir » 16.12.2009 00:59:21)

Вышла новая beta-версия Sypex Dumper 2.
    * Добавлен вызов дампера из консоли или Cron'а. Подробнее читайте в документации.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)