2016-11-28 148 views
1

我2个服务器(srv50/51),它们中的一个 是主站和第二个是从配置,Maxscale正在写与router_options =主站(主/从复制)从和听众停止

这里我的配置文件/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 

正如我understool的router_options看看谁是主人和发送文字查询到主

Maxscale(通过maxadmin)似乎发现2服和下站在女巫一个是站长:

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 
-------------------+-----------------+-------+-------------+-------------------- 

但是即使我在MySQL的本地连接我Maxscale只写监听端口(4009),侦听器都处于停止模式下,是正常的吗?

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。

我的配置有问题吗?这很奇怪,因为它不是我的第一个集群,而在其他集群上,所有写入的都是主集群(但​​侦听器正在运行)。我不明白“router_options = master”的含义吗?如何开始听众?我prefere保持51写列表检测拓扑变化

===== UPDATE =====

看后日志文件/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 
---------------------+--------------------+-----------------+-------+-------- 

但写查询奴隶仍在进行,而不是在主

回答

0

感谢MariaDB的支持,我试图连接这样的:

mysql -h localhost --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 --protocol=tcp --port=4009 -u USER -p 

我已经尝试溶液和他们的作品。

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

0

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

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