我正在写一个代码,以提取在MySQL复制环境中的从服务器的IP地址和用户名。 有谁知道任何函数,variables,或者我可以在控制台上运行,并检索这些信息,而无需查看my.conf文件?
thansk
有一个有趣的方法来报告连接到主站的所有注册的从站。
该命令被称为SHOW SLAVE HOSTS;
这不会直接显示从站的IP,但是您可以configuration主站和从站以独特的方式进行。
使用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)
如图所示
第一列是Slave的server-id
第2列是报告主机variables中指定的从属的名称(默认为空白)
第3列是连接到主站的从站端口号
第4列是从服务器的主服务器ID(从主服务器运行)
在版本MySQL 5.1和后面,默认情况下是这样的:
MySQL> show slave hosts; Empty set (0.01 sec) MySQL>
您可以通过将这个添加到从属的/etc/my.cnf来为每个从属分配一个主机名
report-host=MySQLSlave_10.1.2.3
重启mysql,希望这个名字会在/etc/my.cnf中input
如果这些时期是不可接受的,就像这样做:
report-host=MySQLSlave_10-1-2-3
然后执行以下操作
而WA LA,你有一个IP地址
在主服务器上:
SELECT * FROM information_schema.PROCESSLIST AS p WHERE p.COMMAND = 'Binlog Dump';
这显示了所有连接的从站,他们的ipaddresses,用户,甚至连接了多长时间后,他们作为奴隶连接。
login到MySQL并执行SHOW FULL PROCESSLIST。 你会得到奴隶的IP地址。
我会尝试login到MySQL,看看全局variables:
mysql -u [dbuser] -p -e "show global variables";