MySQL Router daemon не слушает никаких портов
Я установил программу, как описано здесь https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-deploying-bootstrapping.html.
После установки сервис mysqlrouter
был запущен в системе. Но этот сервис не прослушивает ни один из портов, указанных в файле конфигурации "/etc/mysqlrouter/mysqlrouter.conf".
команда lsof -i -P -n | grep LISTEN
показывает:
systemd-r 780 systemd-resolve 13u IPv4 17461 0t0 TCP 127.0.0.53:53 (LISTEN)
sshd 1140 root 3u IPv4 20873 0t0 TCP *:22 (LISTEN)
sshd 1140 root 4u IPv6 20890 0t0 TCP *:22 (LISTEN)
Как видите, только порт 22 прослушивает.
Чтобы mysqlrouter прослушивал порт, определенный в файле конфигурации, я должен запустить его как новый процесс, используя команду mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf &
,
После этого mysqlrouter прослушивает порт и все ок.
Это похоже на то, что служба не загружает файл конфигурации /etc/mysqlrouter/mysqlrouter.conf
во время запуска и использует стандартную (пустую) конфигурацию, которая ничего не слушает.
Содержимое файла конфигурации:
[routing:default]
bind_address=0.0.0.0
bind_port=3306
destinations=metadata-cache://personal/default?role=PRIMARY
routing_strategy=first-available
protocol=classic
Как заставить демон mysqlrouter начать работать в соответствии с файлом конфигурации и прослушивать указанные порты?
Если я запускаю mysqlrouter как новый процесс, используя команду mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf &
это работает правильно:
systemd-r 780 systemd-resolve 13u IPv4 17461 0t0 TCP 127.0.0.53:53 (LISTEN)
sshd 1140 root 3u IPv4 20873 0t0 TCP *:22 (LISTEN)
sshd 1140 root 4u IPv6 20890 0t0 TCP *:22 (LISTEN)
main 3615 root 4u IPv4 43469 0t0 TCP *:3306 (LISTEN)
Обновление...
команда systemctl status mysqlrouter.service
показывает:
● mysqlrouter.service - LSB: Start / Stop MySQL Router
Loaded: loaded (/etc/init.d/mysqlrouter; generated)
Active: active (exited) since Sun 2019-06-30 16:49:14 UTC; 2min 48s ago
Docs: man:systemd-sysv-generator(8)
Process: 4089 ExecStop=/etc/init.d/mysqlrouter stop (code=exited, status=0/SUCCESS)
Process: 4117 ExecStart=/etc/init.d/mysqlrouter start (code=exited, status=0/SUCCESS)
Jun 30 16:49:14 webservicepersonal2o systemd[1]: Starting LSB: Start / Stop MySQL Router...
Jun 30 16:49:14 webservicepersonal2o mysqlrouter[4117]: * Starting MySQL Router
Jun 30 16:49:14 webservicepersonal2o mysqlrouter[4117]: ...done.
Jun 30 16:49:14 webservicepersonal2o systemd[1]: Started LSB: Start / Stop MySQL Router.
Как я уже сказал, сервис работает, но все равно не слушает порты.
systemd-r 780 systemd-resolve 13u IPv4 17461 0t0 TCP 127.0.0.53:53 (LISTEN)
sshd 1140 root 3u IPv4 20873 0t0 TCP *:22 (LISTEN)
sshd 1140 root 4u IPv6 20890 0t0 TCP *:22 (LISTEN)
0 ответов
Вместо этого используйте следующее.
bind_address=127.0.0.1
Получил следующее:
netstat -ntlp
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 6117/mysqlrouter
Использовать dbhost: 127.0.0.1
Использование этой команды нормально.
попробуй это:
sudo mysqlrouter --user=mysqlrouter --bootstrap root@192.168.30.241:3306 --conf-use-sockets --report-host localhost --force