Mariadb Maxscale正在从机上写入,路由器_options=master(从/主复制),侦听器已停止

Mariadb Maxscale正在从机上写入,路由器_options=master(从/主复制),侦听器已停止,mariadb,database-replication,maxscale,Mariadb,Database Replication,Maxscale,我在2台服务器(srv50/51)上进行了配置, 其中一个是主人,另一个是奴隶 下面是我的配置文件/etc/maxscale.cnf的配置: [Read-Only Service] type=service router=readconnroute servers=server50, server51 user=YYYYYYYYYYYYY passwd=XXXXXXXXXXXXXX router_options=slave [Write-Only Service] type=service r

我在2台服务器(srv50/51)上进行了配置, 其中一个是主人,另一个是奴隶

下面是我的配置文件/etc/maxscale.cnf的配置:

[Read-Only Service]
type=service
router=readconnroute
servers=server50, server51
user=YYYYYYYYYYYYY
passwd=XXXXXXXXXXXXXX
router_options=slave

[Write-Only Service]
type=service
router=readconnroute
servers=server50, server51
user=YYYYYYYYYYYYY
passwd=XXXXXXXXXXXXXX
router_options=master

[Read-Only Listener]
type=listener
service=Read-Only Service
protocol=MySQLClient
port=4008

[Write-Only Listener]
type=listener
service=Write-Only Service
protocol=MySQLClient
port=4009
当我理解这个工具时,router_选项会查看谁是主机,并将写查询发送给主机

Maxscale(通过maxadmin)似乎发现了2个serveur,并了解其中一个是主服务器:

MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
server51           | 192.168.0.51    |  3306 |           0 | Slave, Running
server50           | 192.168.0.50    |  3306 |           0 | Master, Running
-------------------+-----------------+-------+-------------+--------------------
但即使我在Maxscale只写侦听器端口(4009)的本地连接Mysql,侦听器也处于停止模式,这正常吗

MaxScale> list listeners
Listeners.
---------------------+--------------------+-----------------+-------+--------
Service Name         | Protocol Module    | Address         | Port  | State
---------------------+--------------------+-----------------+-------+--------
Read-Only Service    | MySQLClient        | *               |  4008 | Stopped
Write-Only Service   | MySQLClient        | *               |  4009 | Stopped
MaxAdmin Service     | maxscaled          | *               |  6603 | Running
---------------------+--------------------+-----------------+-------+--------
我尝试在srv51(从)中创建一个数据库,它只在srv51上创建,而不是在srv50中创建

我的配置有问题吗?这很奇怪,因为它不是我的第一个集群,在另一个集群上,所有写操作都转到主集群(但侦听器正在运行)。我是否不太理解“路由器选项=主机”的含义?如何启动听众?我更喜欢将51保留在写列表中以检测拓扑变化

====更新=====

查看日志文件/var/Log/maxscale/maxscale1.Log后 我发现我的监视器用户没有正确的密码:

[MySQL Monitor]
type=monitor
module=mysqlmon
servers=server50, server51
user=MONITOR
passwd=MONITOR_PASS
monitor_interval=10000
我更正了用户密码并重新启动了maxscale,现在一切都在运行:

MaxScale> list listeners
Listeners.
---------------------+--------------------+-----------------+-------+--------
Service Name         | Protocol Module    | Address         | Port  | State
---------------------+--------------------+-----------------+-------+--------
Read-Only Service    | MySQLClient        | *               |  4008 | Running
Write-Only Service   | MySQLClient        | *               |  4009 | Running
MaxAdmin Service     | maxscaled          | *               |  6603 | Running
---------------------+--------------------+-----------------+-------+--------

但是写查询仍然是在从机上完成的,而不是在主机上完成的

多亏了MariaDb的支持,我尝试这样连接:

mysql -h localhost --port=4009 -u USER -p
mysql -h localhost --protocol=tcp --port=4009 -u USER -p
但是Maxscale和Mysql安装在同一台服务器上,即使Mysql绑定端口3306,当您指定“localhost”时,连接是在Mysql端口3306上完成的,而不是在Maxscale端口4009上完成的,该端口被忽略

解决方案是这样连接:

mysql -h 127.0.0.1 --port=4009 -u USER -p
或者像这样:

mysql -h localhost --port=4009 -u USER -p
mysql -h localhost --protocol=tcp --port=4009 -u USER -p
我尝试了两种解决方案,它们都有效


关于监听器未运行的解决方案取决于问题的更新。

多亏了MariaDb的支持,我尝试这样连接:

mysql -h localhost --port=4009 -u USER -p
mysql -h localhost --protocol=tcp --port=4009 -u USER -p
但是Maxscale和Mysql安装在同一台服务器上,即使Mysql绑定端口3306,当您指定“localhost”时,连接是在Mysql端口3306上完成的,而不是在Maxscale端口4009上完成的,该端口被忽略

解决方案是这样连接:

mysql -h 127.0.0.1 --port=4009 -u USER -p
或者像这样:

mysql -h localhost --port=4009 -u USER -p
mysql -h localhost --protocol=tcp --port=4009 -u USER -p
我尝试了两种解决方案,它们都有效


有关侦听器未运行的解决方案是更新问题。

如果在从属设备上执行写入操作,最简单的解释是您在错误的端口上执行写入操作,或者您的配置错误。要诊断这些问题,请通过在
[maxscale]
部分下添加
log\u info=true
来启用信息日志级别


如果启用信息日志和检查日志文件没有提供任何线索,我建议在上打开错误报告。

如果在从机上执行写入操作,最简单的解释是在错误的端口上执行写入操作或配置错误。要诊断这些问题,请通过在
[maxscale]
部分下添加
log\u info=true
来启用信息日志级别

如果启用信息日志和检查日志文件并没有提供任何线索,我建议在上打开一个bug报告