MySql для Windows, MySql Администратор: запланированное резервное копирование не работает
Мой вопрос немного конкретен, но я надеюсь, что у кого-то есть опыт решения этой проблемы.
Я использую сервер Windows 2008 с установленным MySql для Windows. Это MySql 5.2, и этот пакет содержит "Администратор MySql". Там вы можете делать резервные копии конкретной базы данных. Когда я настраиваю резервные копии, а также говорю, что это нужно делать ежедневно около 3 часов утра, это не работает автоматически. Только когда я нажимаю "Выполнить резервное копирование сейчас", я сохраняю файл.SQL, а затем резервная копия работает нормально. Когда я прошу его запустить автоматически, ничего не создается и даже файл журнала не создается. Я проверил права на выбранную папку и добавил пользователя "Все" со всеми правами, чтобы исключить любые проблемы с разрешениями. Нет эффекта.
Я гуглил в течение дня и не могу найти решение для этого. Кто-нибудь знает, почему мое автоматическое резервное копирование через администратора MySQL не работает на MS Windows 2008 и почему оно даже не создает файл журнала?
7 ответов
СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ С МИНИМАЛЬНЫМ РАЗРЕШЕНИЕМ
mysql> grant select,lock tables on foo.* to bar@localhost identified by'backup';
mysql> flush privileges;
СОЗДАТЬ ФАЙЛ ФАЙЛА, КАК СЛЕДУЮЩИЙ И РАСПИСАНИЕ ЭТОГО*Это создаст резервную копию файла по указанному пути с именем БД + дата и время*
@echo off
set mySqlPath=C:\[path to my sql]\mysql5.1.36
set dbUser=bar
set dbPassword=backup
set dbName=MyDB1
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
set file=%dbName%.%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.sql
set path=C:\[path to folder]\mysql_bak
echo Running dump for database %dbName% ^> ^%path%\%file%
"%mySqlPath%\bin\mysqldump.exe" -u %dbUser% -p%dbPassword% --result-file="%path%\%file%" %dbName%
echo Done!
Я попытался также использовать версию 1.2.17 с win 7. Я столкнулся с той же проблемой.MySQL ADMIN планирует резервное копирование с помощью планировщика Windows. Я действительно не знаю почему, но когда я запланировал резервное копирование (когда я СОХРАНИЛ новый созданный проект) под пользователем с учетной записью ADMIN, он не работал. Когда я запланировал резервное копирование под стандартным счетом, он работал нормально. Чтобы решить эту проблему, я определил новую стандартную учетную запись в WIN 7 . Я регистрируюсь, чтобы выиграть 7 под своей основной учетной записью и планирую резервное копирование под новой учетной записью. Теперь все отлично работает.
У меня есть решение, когда вы создаете расписание резервного копирования, MySQL Administrator берет информацию о вашем имени пользователя и пароле. На этот раз дать правильное имя пользователя и пароль системы
Я думаю, это может быть связано с Windows "Cron" рабочих мест. Во всяком случае, это делает трюк для меня:
http://realm3.com/articles/how_to_schedule_regular_mysql_backups_in_windows
Конечно, вы должны делать все вручную, но это также лучше. Я получил эту же проблему в PostgreSQL, потому что o windows "at" отличается от linux "cron". С тех пор я начал делать свою собственную работу "cron".
Также проверьте это: http://kedar.nitty-witty.com/blog/scheduled-backup-mysql-administrator-windows-scheduler-odd
Надеюсь, поможет!:)
Я опубликую то, что мои выводы для других людей, чтобы наслаждаться.
Я не получил функцию резервного копирования MySQL Administrator, чтобы работать автоматически, вместо этого я использовал предложение @mOrSa
Мои выводы таковы: я создал командный файл, используя этот код:
@echo off
set zy=2011
set zm=1
set zd=17
set zz = ((zy*100)+zm)*100+zd
Set hr=%TIME:~0,2%
Set mn=%TIME:~3,2%
echo Running dump...
C:\Progra~1\MySQL\MYSQLS~1.5\bin\mysqldump -uuser -password --port=3307 --result-file="c:\MySqlBackups\backup_%zz%_%hr%%mn%.sql" meibergen_dbo
echo Done!
echo Deleting old files
forfiles /P "C:\MySqlBackups" /S /M *.sql /D -7 /C "cmd /c del @PATH"
echo Done!
Это создает файл.SQL в выбранной папке с форматом имени "backup_20110825_14:54.sql". Он также удаляет все файлы старше 7 дней в этой папке. У меня Windows Server 2008, поэтому файл "forfiles.exe" стандартно устанавливается в папке system32. Если у вас нет этой программы, вы можете скачать ее где-нибудь бесплатно.
После этого я установил запланированное задание на запуск этого пакетного файла в планировщике заданий Windows. Убедитесь, что вы дали соответствующие права в расписании. Это выполняется ежедневно.
Простой трюк - создать хранимое соединение (его можно протестировать как на Win7, так и на Win2008 с помощью MySQL Administrator 1.2.17 , оно входит в число инструментов MySQL GUI).
Откройте MySQL Administrator, затем зайдите в меню Инструменты> Параметры
Во всплывающих окнах выберите "Соединение" слева и нажмите кнопку "Новое соединение".
Введите значения вашего подключения: имя пользователя, пароль, хост... и сохраните его.
Закройте MySQL Administartor и снова откройте его, но на этот раз подключитесь, выбрав новое сохраненное соединение, которое вы только что создали на шаге (3) из списка выбора (список выбора - 1-е поле в окне входа в систему)
Теперь вы можете создать резервную копию и запланировать ее, и расписание будет работать как чудо.
Я знаю, что это старая проблема, но у меня была та же самая проблема в последние дни, и в поиске решений я не мог найти, как решить мою проблему, но я нашел некоторую информацию в своих журналах событий, и я вспомнил, что у меня было другое соединение (очевидно, журналы событий показывают мне это), поэтому я установил новое соединение с тем же именем, какие журналы событий показывают мне и вуаля, проблема исправлена.