第二个节点上的Percona将不会启动

我已经设置了两个Vagrant虚拟机来模拟Percona XtraDB集群以满足我们的开发需求。 第一台虚拟机上网很好,一切正常。 但是,当我尝试在第二个虚拟机上启动Percona时,在请求状态转移时会出现错误。

这是我们在db1上得到的错误:

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) 

我发现有趣的是它试图连接到10.0.2.15,当db2的IP是192.168.160.211。 在db1上运行ifconfig显示以下networkingconfiguration:

 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) 

所以这就是告诉我,在进行rsyncing时,Percona正在尝试使用eth0 。 不应该使用eth1吗?

问候,
安德鲁

问题是,默认情况下Percona使用eth0,除非被覆盖。

它使用以下命令来计算出它应该进行通信的IP地址:

 /sbin/ifconfig | grep -E '^[[:space:]]+inet addr:' | grep -m1 -v 'inet addr:127' | sed 's/:/ /' | awk '{ print $3 }' 

其中的结果在10.0.2.15。

可以设置wsrep_node_addressvariables来告诉它使用一个备用的ip:

 wsrep_node_address=192.168.160.80:4567 

我们遇到了同样的问题,并为我们解决了这个问题。

詹姆士