今天有同事问show variables 中的report_port 是什么意思:"明明端口是设置成3307,为什么这还写着3306"。简单写下。
1、作用
在主从环境下,我们可以用show slave status看当前从库连接的主库信息,若反过来,主库要看当前是有哪些从库连着自己呢?
2、Show slave hosts命令
这个命令在主库执行,命令功能是列出当前连接自己的从库。不过若你现在去试一下,可能会发现返回的是空。
其原因是从库连上来的时候,并没有“报告”自己的位置。尤其是从库本身的端口,与建立主从联系的过程无关。
因此要能够在主库中列出从库位置,只能依靠从库自己连接的时候汇报。
3、report-系列
Report系列是设置在从库上的,包含四个参数 report-[host|port|user|password]. 当my.cnf中设置了report-host时,在从库执行start slave的时候,会将report-host和report-port(默认3306)发给主库,主库记录在全局哈希结构变量 slave_list 中。
如果想要连report-user和report-password也显示出来,则需要主库配置参参数show-slave-auth-info。
4、存在的问题
a) 这套参数的似乎很少被使用到,以至于有一个明显的bug:当从库退出或者stop slave时,从主库上的show slave hosts结果仍然能看到它。
翻代码发现在从库线程退出的时候,就没去调退出注册函数(unregister_slave)。
b) 存在的另外一个问题是,我们知道同一个maser的多个slave之间是允许server-id相同的(虽然这不太规范),而由于这个slave_list的hash key是server-id,所以当出现两个slave的server-id相同时,后面注册的slave无法显示在master的slave hosts列表中。
c)主库直接接收从库的配置结果,并不作检验,甚至于report-port填写的ip不符合规范都能直接列出来。 这样若配置规范还好,配置不规范反倒造成误解。
这套参数的用处似乎还未被开发出来,问题也不少,无怪乎官方文档中强调:
” If you are not sure, do not use this option.”。
如果没列出从库的需求,就无视好了。
==== 补充 ====
同一个master上若有相同id的slave,可能会在从库上报“received end packet from server, apparent master shutdown: ”。
分享到:
相关推荐
mysql-installer-community-5.7.31.0 mysql-installer-community-5.7.31.0 mysql-installer-community-5.7.31.0 mysql-installer-community-5.7.31.0 mysql-installer-community-5.7.31.0 mysql-installer-community...
mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。
mysql-connector-java-5.1.27.jar mysql-connector-java-5.1.27.jar
mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 ...
包含mysql-connector-java-8.0.22.jar包含mysql-connector-java-8.0.22.jar包含mysql-connector-java-8.0.22.jar包含mysql-connector-java-8.0.22.jar包含mysql-connector-java-8.0.22.jar包含mysql-connector-java-...
Mysql数据库驱动mysql-connector-java-5.1.41-bin.jar
mysql-connector-java-5.1.7-bin.jar
包括以下文件 mysql-connector-java-3.0.16-ga-bin.jar mysql-connector-java-3.1.8-bin.jar mysql-connector-java-3.1.13-bin.jar mysql-connector-java-5.0.5-bin.jar
mysql命令,mysql -h主机地址 -u用户名 -p密码
mysql-connector-java-5.0.5.jar mysql-connector-java-5.1.6.jar mysql-connector-java-5.1.18.jar mysql-connector-java-5.1.21.jar mysql-connector-java-5.1.35.jar mysql-connector-java-5.1.39.jar mysql-...
mysql-connector-java mysql-connector-java-5.1.5 mysql-connector-java-5.1.40
5 MySQL驱动-mysql-connector-java-5.1.38-bin.jar 有需要其他jar包的可以留言喔 jar包齐全
mysql-community-client-5.7.37-1.ky10.ky10.aarch64.rpm mysql-community-common-5.7.37-1.ky10.ky10.aarch64.rpm mysql-community-devel-5.7.37-1.ky10.ky10.aarch64.rpm mysql-community-embedded-5.7.37-1.ky10....
mysql-connector-java-5.1.46-bin.jar mysql-connector-java-5.1.27-bin.jar
mysql-connector-java-5.1.40.zip和mysql-connector-java-5.1.10.jar
mysql-connector-java-5.1.46+mysql-connector-java-8.0.13--Mysql连接包 放入lib,即可使用
MySQL官方提供的驱动包 mysql-connector-java-5.1.27.zip
mysql57-community-release-el7-11.noarch.rpm,使用mysql 官方yum 仓库,方法本土下载
mysql-connector-net-6.9.9.msi mysql-connector-net-6.10.7.msi mysql-for-visualstudio-1.2.8.msi Win64OpenSSL-1_1_0i.exe
支持mysql-connector-java-5.6,mysql-connector-java-5.0.X以上