I have set up a test cluster with three nodes. The tricky part is that two (node1 and node2) are part of the same local network and recognize each other using internal IP addresses (10.*.*.*). They
cannot use each other's public IP address, which is the only way the third node (node3) can connect to them.
I got it to work by starting the cluster with node1 and node3. Both used their public IP's in wsrep_node_address. I added node2 to the cluster with this configuration:
wsrep_sst_donor="node1"
wsrep_node_address="10.1.2.3"
wsrep_sst_method=rsync
(That is not the actual IP address, but I used the internal one.) This seems to work, but I wonder if this configuration will cause problems later; is there a better way?
It looks as though node2 starts an rsync daemon, then tells node1 (the donor) to connect at the IP address specified in wsrep_node_address, which is why I tried this. Is wsrep_node_address used for anything else, and will it be a problem that node3 cannot use this IP address?
I am using galera 25.3.2 and mysql-server-wsrep 5.5.34-25.9 on Ubuntu 12.04.