Kou*_*mia 9 mysql replication master-slave master
我正在编写代码来提取 MySQL 复制环境中所有从服务器的 IP 地址和用户名。
有谁知道我可以在控制台中运行并在不查看my.cnf文件的情况下检索这些信息的任何函数、变量或其他东西?
小智 17
在主服务器上:
SELECT * FROM information_schema.PROCESSLIST AS p WHERE p.COMMAND = 'Binlog Dump';
Run Code Online (Sandbox Code Playgroud)
这会显示所有已连接的从站、它们的 IP 地址、用户,甚至自上次作为从站连接以来已经连接了多长时间。
有一种有趣的方法可以报告所有已注册的从站连接到主站。
该命令称为SHOW SLAVE HOSTS;
这不会直接显示从站的 IP,但您可以以独特的方式配置主站和从站。
使用 MySQL 5.5,只需运行 SHOW SLAVE HOSTS;你会得到这样的东西:
MySQL> show slave hosts;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
| 106451148 | | 3306 | 106451130 |
+-----------+------+------+-----------+
1 row in set (0.00 sec)
MySQL> show variables like 'server_id';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| server_id | 106451130 |
+---------------+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
如图所示,第
1 列是 Slave 的服务器 ID 第
2 列是报告主机变量中指定的 Slave 名称(默认为空) 第
3 列是 Slave 连接到主
服务器的端口号 第4 列是 Slave 的主服务器 ID(运行此来自大师)
在 MySQL 5.1 及之后的版本中,默认情况下你会得到这个:
MySQL> show slave hosts;
Empty set (0.01 sec)
MySQL>
Run Code Online (Sandbox Code Playgroud)
您可以通过将其添加到从站的 /etc/my.cnf 来为每个从站分配一个主机名
report-host=MySQLSlave_10.1.2.3
Run Code Online (Sandbox Code Playgroud)
重启MySQL,并希望该名称将显示为您键入它的/etc/my.cnf
如果时间是不能接受的,让他们飞奔这样的:
report-host=MySQLSlave_10-1-2-3
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作
和 WA LA,你有一个 IP 地址
| 归档时间: |
|
| 查看次数: |
25352 次 |
| 最近记录: |