前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >show slave hosts的一个问题

show slave hosts的一个问题

作者头像
AsiaYe
发布2019-11-06 17:14:25
2.6K0
发布2019-11-06 17:14:25
举报
文章被收录于专栏:DBA随笔

show slave hosts的一个问题

今天早上来公司,查看一个5.5版本的MySQL主从复制的架构的时候,发现一个问题,这个问题之前在5.7版本的MySQL版本中没有遇到过,这里记录一下,以供大家参考。

这里假设我们有两台机器,IP地址分别是:

server 1: 192.168.124.61 主库

server 2: 192.168.124.62 从库

端口:4306

首先,我们在server 1上面使用show slave hosts的方法查看了一下从节点的情况,如下:

代码语言:javascript
复制
mysql:(none) ::>>show slave hosts;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
|          |      |  |          |
+-----------+------+------+-----------+
 row in set (0.00 sec)

上面的信息中可以发现port是3306,但是这里并没有显示IP地址,于是我用show processlist看了一眼,发现IP地址是192.168.124.62。

此时,连接到从库,使用show slave status来查看复制状态,结果如下:

代码语言:javascript
复制
mysql:(none) ::>>show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.124.61
                  Master_User: dba_repl
                  Master_Port: 
                Connect_Retry: 
              Master_Log_File: mysqlbin.000123
          Read_Master_Log_Pos: 
               Relay_Log_File: mysql-relay-bin.000173
                Relay_Log_Pos: 
        Relay_Master_Log_File: mysqlbin.000123
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

mysql:(none) ::>>select @@port;
+--------+
| @@port |
+--------+
|    |
+--------+
 row in set (0.00 sec)

可以看到,从库上面配置的master_port是4306,而且从库的端口也是4306。

也就是说 ,主库上面show slave hosts看到的从库端口信息和从库实际的端口信息不符。

查了查,应该是某些参数导致的,具体来讲,主库上面使用show slave hosts看到的结果是从从库上面的report-host等参数的值获取的,于是我使用show variables查看了一眼从库上参数的具体值,结果如下:

(从库端)

代码语言:javascript
复制
mysql:(none) ::>>show variables like '%report%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| report_host     |       |
| report_password |       |
| report_port     |   |
| report_user     |       |
+-----------------+-------+
 rows in set (0.00 sec)

可以看到这些信息和上面主库中看到的信息是符合的,也就是说,主库端的信息是从这里发出去的,于是我查看了一下官方手册,得到了如下的结果:

代码语言:javascript
复制
The host name or IP address of the slave to be reported to
the master during slave registration. This value appears 
in  the output of SHOW SLAVE   HOSTS on the master server.
 Leave the value unset  if you do not want the slave to 
register itself with the  master.

也就更加印证了刚才的想法,这些值确实是传递给master的信息,也就是在主库上show slave hosts的信息,这样,也就确定了问题。

解决问题过程:

1、直接手动修改该参数:

代码语言:javascript
复制
mysql:(none) ::>>set global report_host='10.21.130.62';
ERROR  (HY000): Variable 'report_host' is a read only variable
mysql:(none) ::>>

可以发现,这个参数是不允许直接修改的,会报错。

2.修改配置文件 vim /data/mysql_4306/my.cnf

report-host=192.168.124.62

report-port= 4306

重启,然后再次在从库上查看,结果如下:

(从库端)

代码语言:javascript
复制
mysql:(none) ::>>show variables like '%report%';
+-----------------+----------------+
| Variable_name   | Value          |
+-----------------+----------------+
| report_host     | 192.168.124.62 |
| report_password |                |
| report_port     |            |
| report_user     |                |
+-----------------+----------------+
 rows in set (0.00 sec)

可以看到,从库的内容已经修改过来了,这个时候开启主从复制,在主库端使用show slave hosts查看结果:

代码语言:javascript
复制
mysql:(none) ::>>show slave hosts;
+-----------+----------------+------+-----------+
| Server_id | Host           | Port | Master_id |
+-----------+----------------+------+-----------+
|         | 192.168.124.62 |  |          |
+-----------+----------------+------+-----------+
 row in set (0.00 sec)

结论:

  1. 从库中的report-host和report-host给主库提供了show slave hosts的信息。
  2. 5.7版本的会自动识别端口,而5.5版本的可能有些问题。
  3. 不能通过show slave hosts准确的查看从节点的端口,如果有需要,还是直接从从节点上面看。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档