MySQL Router守护程序不监听任何端口

时间:2019-06-30 11:35:07

标签: mysql ubuntu-18.04 mysqlrouter

我按照此处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 -c /etc/mysqlrouter/mysqlrouter.conf &作为新进程启动mysqlrouter,它将正常工作:

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)

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用此命令是正常的。

尝试一下:

sudo mysqlrouter --user=mysqlrouter --bootstrap root@192.168.30.241:3306  --conf-use-sockets  --report-host localhost  --force