
Eu configurei duas VMs Vagrant para simular o Cluster Percona XtraDB para nossas necessidades de desenvolvimento. A primeira VM fica online perfeitamente e tudo funciona. Porém, quando tento iniciar o Percona na 2ª VM, obtemos erros ao solicitar a transferência de estado.
Este é o erro que encontramosbanco de dados1:
rsync: failed to connect to 10.0.2.15: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
rsync returned code 10:
130416 17:19:07 [ERROR] WSREP: Failed to read from: wsrep_sst_rsync --role 'donor' --address '10.0.2.15:4444/rsync_sst' --auth '(null)' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/data/' --defaults-file '/etc/my.cnf' --gtid '684d0eda-a6e5-11e2-0800-75b8bb33fbfb:3'
130416 17:19:07 [Note] WSREP: Provider resumed.
130416 17:19:07 [ERROR] WSREP: Process completed with error: wsrep_sst_rsync --role 'donor' --address '10.0.2.15:4444/rsync_sst' --auth '(null)' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/data/' --defaults-file '/etc/my.cnf' --gtid '684d0eda-a6e5-11e2-0800-75b8bb33fbfb:3': 255 (Unknown error 255)
130416 17:19:07 [Warning] WSREP: 1 (db1.ellis.dev.liquidcompass.net): State transfer to 0 (db2.ellis.dev.liquidcompass.net) failed: -1 (Operation not permitted)
O que estou achando interessante é que ele está tentando se conectar ao 10.0.2.15, quando o IP doDB2é 192.168.160.211. Continuandoifconfig
banco de dados1mostre a seguinte configuração de rede:
eth0 Link encap:Ethernet HWaddr 08:00:27:42:B3:4F
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe42:b34f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:668 errors:0 dropped:0 overruns:0 frame:0
TX packets:371 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:55869 (54.5 KiB) TX bytes:63186 (61.7 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:90:38:2A
inet addr:192.168.160.80 Bcast:192.168.160.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe90:382a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2863 errors:0 dropped:0 overruns:0 frame:0
TX packets:137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:286053 (279.3 KiB) TX bytes:18650 (18.2 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200 (200.0 b) TX bytes:200 (200.0 b)
Isso está me dizendo que o Percona está tentando usar eth0
ao sincronizar novamente. Não deveria estar usando eth1
?
Atenciosamente,
André
Responder1
O problema é que o Percona, por padrão, usa eth0, a menos que seja substituído.
Ele usa o seguinte comando para descobrir o endereço IP com o qual deve se comunicar:
/sbin/ifconfig | grep -E '^[[:space:]]+inet addr:' | grep -m1 -v 'inet addr:127' | sed 's/:/ /' | awk '{ print $3 }'
O que resulta em 10.0.2.15.
A variável wsrep_node_address pode ser definida, informando para usar um IP alternativo:
wsrep_node_address=192.168.160.80:4567
Tivemos o mesmo problema e isso foi resolvido para nós.
James