Я пытаюсь найти способ обойти это. В основном я не хочу, чтобы кто-нибудь за пределами нашего сервера мог попытаться подключиться к нашей БД. Поэтому я добавил это в my.conf:
skip-networking
Вот что я получаю, когда skip-networking
НЕ включен:
tcp6 0 0 :::3306 :::* LISTEN 6957/mysqld
unix 2 [ ACC ] STREAM LISTENING 3911682 6957/mysqld /var/run/mysqld/mysqld.sock
..но когда я его добавляю, он убирает "прослушивание" порта 3306:
sudo netstat -lnp | grep mysql
unix 2 [ ACC ] STREAM LISTENING 3909565 7356/mysqld /var/run/mysqld/mysqld.sock
Мой сценарий мониторинга довольно прост:
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group database
group mysql
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host localhost port 3306 protocol mysql with timeout 15 seconds for 3 times within 4 cycles then restart
if failed unixsocket /var/run/mysqld/mysqld.sock protocol mysql for 3 times within 4 cycles then restart
if 5 restarts with 5 cycles then timeout
depend mysql_bin
depend mysql_rc
check file mysql_bin with path /usr/sbin/mysqld
group mysql
include /etc/monit/templates/rootbin
check file mysql_rc with path /etc/init.d/mysql
group mysql
include /etc/monit/templates/rootbin
Какие-либо предложения? Я действительно хочу сохранить skip-networking
включен, но если он остановит работу Monit, у нас может не быть выбора (если не будет обходного пути)
ОБНОВИТЬ: Если я удалю следующую строку, как было предложено:
if failed host localhost port 3306 protocol mysql with timeout 15 seconds for 3 times within 4 cycles then restart
Затем, когда я перезагружаю Monit, я получаю эту ошибку:
[UTC Oct 9 13:00:45] error : 'mysqld' process is not running
[UTC Oct 9 13:00:45] info : 'mysqld' trying to restart
[UTC Oct 9 13:00:45] info : 'mysqld' start: /etc/init.d/mysql
[UTC Oct 9 13:01:15] error : 'mysqld' failed to start (exit status 127) -- /etc/init.d/mysql: Cannot execute --sync_binlog=0
ОБНОВЛЕНИЕ 2: Хорошо, это не совсем то решение, о котором я думал, но оно имело тот же эффект. То, что я сделал, это закрытый порт 3306 ни на что Кроме 127.0.0.1, что означает, что он будет разрешать только входящий трафик с сервера, а не внешний. Затем я удалил skip-networking
часть из my.cnf, так как я не хочу отключать сеть сейчас
Спасибо
Энди
Вы можете выполнить привязку к 127.0.0.1, но имейте в виду, что интерфейс будет иметь доступ только к mysql.