#php #mysql #bash #shell #cron
#php #mysql #bash #оболочка #cron
Вопрос:
У меня есть две системы: веб-сервер и сервер mysql. У веб-сервера возникла проблема, из-за которой его клиент mysql терпит неудачу при подключении УДАЛЕННОГО сервера mysql с помощью сценария оболочки, запускаемого заданием cron. Задание cron использует пользователя root, и я могу войти в систему как root и запустить скрипт в командной строке без проблем.
Сценарий оболочки optimizestatements.sh
имеет:
#!/bin/bash
mysql --login-path=remoteserver -se "OPTIMIZESTATEMENT"`;
Используя mysql_config_editor
, я настроил зашифрованный файл параметров, чтобы избежать отправки пароля для входа в систему в открытом виде. Когда я создавал этот файл опций, я использовал прямой IP-адрес удаленного сервера.
Запись задания cron проста:
HOME=/
TERM=dumb
0 1 * * * /usr/local/bin/optimizestatements.sh | ts '[%Y-%m-%d %H:%M:%S]' >> /var/log/cron_optimizedb 2>amp;1
В моих предыдущих поисках ответа почти все они говорят, что локальный mysql не запущен на веб-сервере, но они не обязательно применимы к моему случаю, потому что я не подключаюсь к своей локальной службе mysql для ее оптимизации, я пытаюсь подключиться к удаленному серверу mysql.
Я не хочу, чтобы mysql работал на моем веб-сервере. Я просто хочу использовать установленный клиент mysql.
Кроме того, как я уже указывал, выполнение команды в командной строке от имени того же пользователя, что и cron, не вызывает никаких проблем и не имеет проблемы с локальным сокетом.
Есть ли что-то еще, чего мне не хватает в процессе? Почему для задания cron требуется запуск локального демона mysql, а для запуска его вручную в командной строке — нет?
Комментарии:
1.
.mylogin.cnf
Существует ли у$HOME
пользователя cron, root в вашем случае? Возможно, cron не настроен$HOME
, поэтомуmysql
он не может его найти. Не могли бы вы просто использовать систему событий MySQL для размещения ваших инструкций optimize?2. Да, в домашнем каталоге правильного пользователя есть .mylogin.cnf, но теперь, когда вы упомянули об этом, в crontab у меня HOME установлено значение /, и это, вероятно, портит работу скрипта. Я также изучу систему событий MySQL, я даже не думал этого делать. Спасибо.