2016-09-13 2 views
0

Я пишу файл .sh, откуда я пытаюсь получить доступ к одному файлу .sql, где у меня есть запрос, который нужно запускать по расписанию.mysql host server не подключается

Ниже строки, с помощью которого я пытаюсь сделать подключение к базе данных:

/home/mysql/mysql/bin/mysql --port=$PORT --host=$HOST --user=$DB_USER --password=$DB_PASSWORD --database=$DB_NAME < ${SQL_SCRIPT_PATH}${SQL_SCRIPT_NAME} >> ${LOG_FILE_PATH}${LOG_FILE_NAME} 

Но, проблема в том, когда планировщик выполняется, он дает ошибку ниже:

[[email protected] TEST_sh]$ sh updateMonthlyUserData.sh 
updateMonthlyUserData.sh: line 15: mysql: command not found 

Примечание: Я попытался запустить это и получил успех, если я запустил файл sh вручную из шпатлевки, а не через scheduler (crontab)

Просьба проверить и помочь.

ответ

0

Crontab использует стандартную оболочку (sh) по умолчанию с минимальным набором переменных окружения. скорее всего, переменная PATH установлена ​​неправильно.

Я бы установить все переменные окружения в начале сценария

#!/bin/bash 
PATH=$PATH:/home/mysql/mysql/bin/:moreFolders 

Для дальнейшего чтения: How to get CRON to call in the correct PATHs https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work

Смежные вопросы