
Ich habe zwei Vagrant-VMs eingerichtet, um den Percona XtraDB-Cluster für unsere Entwicklungsanforderungen zu simulieren. Die erste VM geht problemlos online und alles funktioniert. Wenn ich jedoch versuche, Percona auf der zweiten VM zu starten, treten bei der Anforderung einer Statusübertragung Fehler auf.
Dies ist der Fehler, den wir bekommendb1:
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)
Was ich interessant finde, ist, dass es versucht, eine Verbindung zu 10.0.2.15 herzustellen, wenn die IP vondb2ist 192.168.160.211. Läuft ifconfig
aufdb1zeigen Sie die folgende Netzwerkkonfiguration:
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)
Das sagt mir also, dass Percona beim Rsyncing versucht, zu verwenden eth0
. Sollte es nicht verwenden eth1
?
Grüße,
Andrew
Antwort1
Das Problem besteht darin, dass Percona standardmäßig eth0 verwendet, sofern es nicht überschrieben wird.
Es verwendet den folgenden Befehl, um die IP-Adresse zu ermitteln, über die kommuniziert werden soll:
/sbin/ifconfig | grep -E '^[[:space:]]+inet addr:' | grep -m1 -v 'inet addr:127' | sed 's/:/ /' | awk '{ print $3 }'
Das Ergebnis ist 10.0.2.15.
Die Variable wsrep_node_address kann so festgelegt werden, dass eine alternative IP-Adresse verwendet werden soll:
wsrep_node_address=192.168.160.80:4567
Wir hatten das gleiche Problem und es wurde für uns behoben.
James