расписание задач windows 7 / mysqldump

расписание задач windows 7 / mysqldump

Я создал пакетный файл для создания дампа базы данных и сохранения его в файле с текущей датой как частью имени файла. Пакетный файл работает блестяще, и все данные сохраняются правильно.

Я сейчас попытался настроить запланированную задачу, чтобы делать это еженедельно, но столкнулся с проблемой: хотя задача выполняется, файл, который она создает, пуст, как будто она не извлекла никаких данных из удаленной базы данных. Я знаю, что это довольно расплывчато, но может ли кто-нибудь сказать, где мне начать искать причину/решение?

** РЕДАКТИРОВАТЬ **

Хорошо, еще больше прогресса — похоже, проблема в пути. Я поставил паузу в пакетном файле, и при запуске через планировщик задач он выдает: «mysqldump не распознанная программа». Однако при запуске через командную строку в моей учетной записи пользователя все работает нормально; просто для подтверждения я настроил его на запуск в той же учетной записи пользователя, в которой я его тестировал.

** ПРАВКА 2 **

Я нашел своего рода решение: мне пришлось ссылаться на приложение mysqldump по его абсолютному пути. Однако я все еще не могу понять, почему оно может найти mysqldump по пути, если запущено напрямую из командной строки, но не может при автоматическом запуске через планировщик задач.

решение1

Может быть, сеть была недоступна? Вы можете попробовать запланировать запуск каждые 5/10 минут и посмотреть, правильно ли работают команды/переменные. Вы уверены, что скрипт работает правильно, когда выполняется целиком, а не только по одной команде за раз?


В вашем редактировании 2: Похоже, mysqldump отсутствует в PATHпеременных окружения. Попробуйте добавить его и повторите попытку.

решение2

Пробовали ли вы запустить mysqldump (в запланированной задаче) в подробном режиме? (--verbose)

Также, возможно, стоит посмотреть, от имени какого пользователя выполняется ваша задача, и убедиться, что у этого пользователя есть права на запуск mysqldump и создание файла в целевом каталоге.

решение3

  1. Если указание абсолютного пути решило вашу проблему, то создать пустой файл невозможно. Вместо этого ни один файл, созданный с помощью журнала планировщика Windows, не показывает успешное выполнение задания.

  2. Ваш скрипт может работать в командной строке, если переменная path содержит информацию о пути к mysqldump.exe. Проверьте это, указав команду "path" в командной строке.

  3. Для справки вот пример пакетного файла, который я использовал для резервного копирования MySQL.

@эхо выкл.
SET DB_USER_ID=[идентификатор]  
SET DB_USER_PASS=[пароль]
SET DATABASE=[имя базы данных]
SET EXP_PATH=[путь к резервной копии]
SET EXP_TMP_PATH=[временный путь]
SET FILE_NAME=[имя файла резервной копии]
Для /f "токены=1-3 разделители=- " %%a в ('дата /t') сделать (установить сегодня=%%a-%%b-%%c)

дель /S /Q %EXP_PATH%
мд %EXP_PATH%
мд %EXP_TMP_PATH%

C:\Bitnami\redmine-2.5.2-0\mysql\bin\mysqldump.exe -u%DB_USER_ID% -p%DB_USER_PASS% %DATABASE% > %EXP_TMP_PATH%\%FILE_NAME%_%today%.sql
переместить %EXP_TMP_PATH%\%FILE_NAME%_%today%.sql %EXP_PATH%\%FILE_NAME%_%today%.sql

Связанный контент