Como encontrar o endereço IP do escravo e o nome de usuário do servidor mestre?

2

Estou escrevendo um código para extrair o endereço IP e o nome de usuário do servidor slave em um ambiente de replicação do MySQL. Alguém sabe alguma função, variável ou algo que eu possa executar no console e recuperar essas informações sem olhar para o arquivo my.conf?

thansk

    
por Kourosh Samia 01.12.2010 / 00:27

4 respostas

8

No servidor mestre:

SELECT * FROM information_schema.PROCESSLIST AS p WHERE p.COMMAND = 'Binlog Dump';

Isso mostra todos os escravos conectados, seus endereços IP, usuário e até quanto tempo eles estão conectados desde a última vez que se conectaram como escravos.

    
por 16.12.2015 / 17:35
6

Existe uma maneira interessante de relatar que todos os escravos registrados se conectam ao mestre.

O comando é chamado de SHOW SLAVE HOSTS;

Isso não mostrará diretamente o IP dos escravos, mas você pode configurar o mestre e os escravos para fazer isso de uma maneira única.

Com o MySQL 5.5, apenas execute SHOW SLAVE HOSTS; e você só tem algo assim:

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)

Como mostrado coluna 1 é a ID do servidor do Slave
coluna 2 é o nome do escravo como especificado na variável report-host (em branco por padrão)
coluna 3 é o número da porta do escravo conectando ao master
A coluna 4 é o ID do servidor mestre do escravo (execute isso no mestre)

Com versões do MySQL 5.1 e versões anteriores, você obtém isso por padrão:

MySQL> show slave hosts;
Empty set (0.01 sec)

MySQL>

Você pode atribuir um nome de host a cada escravo adicionando isso ao /etc/my.cnf do escravo

report-host=MySQLSlave_10.1.2.3

Reinicie o mysql e esperamos que o nome apareça como você digitou em /etc/my.cnf
Se os períodos não forem aceitáveis, faça-os traços assim:

report-host=MySQLSlave_10-1-2-3

Em seguida, faça o seguinte

  1. MOSTRAR HOSPEDES ESCRAVOS;
  2. Use a função de explosão do PHP , delimitando pelo caractere de sublinhado e use o segundo elemento de a matriz
  3. Use a função PHP str_replace , substituindo o traço (-) por ponto (. )

E WA LA, você tem um endereço IP

    
por 11.05.2011 / 17:58
2

Faça o login no mysql e execute SHOW FULL PROCESSLIST. Você receberá endereços IP de escravos.

    
por 16.02.2011 / 20:33
-2

Eu tentaria fazer o login no mysql e observar as variáveis globais:

mysql -u [dbuser] -p -e "show global variables";

    
por 01.12.2010 / 00:50