Я пытаюсь создать кластер MySQL из 3 узлов, используя mysql -сервер docker контейнеры.
У меня есть 3 отдельных экземпляра облака и docker настроены на всех трех из них. На каждом сервере будет работать только 1 контейнер - для достижения высокой доступности в кластере.
Я запускаю контейнеры на всех 3 серверах индивидуально с помощью команды
docker run --name=db -p 3301:3306 -v db:/var/lib/mysql -d mysql/mysql-server
Я сопоставляю порт 3306 контейнера с портом 3301 моего сервера. Я также создал нового пользователя clusterteradmin для удаленного доступа.
Затем из mysql -shell я выполнил следующую команду - для всех 3 серверов
dba.configureInstance('clusteradmin@serverIp:3301')
Я получаю аналогичное сообщение для всех - ![enter image description here](https://i.stack.imgur.com/VeUK6.png)
Note that it says 'This instance reports its own address as 39xxxxxxxxxx:3306'.
Next I create a cluster in one of the server successfully. But, when adding the other 2 servers to this cluster, I'm getting the following error
![enter image description here](https://i.stack.imgur.com/sMMtH.png)
On checking the logs for that particular server, I see the following lines
![enter image description here](https://i.stack.imgur.com/pgvkL.png)
It says 'peer address a9yyyyyyyyyy:33061 is not valid'. This is because, since the containers are running on different servers, the container-id is not recognised by other containers on other server.
I tried many options but to no avail. One method was to use report-host and report-port options when starting the container, like so
docker run --name=db2 -p 3301:3306 -v db2:/var/lib/mysql -d mysql/mysql-server --report-host=139.59.11.215 --report-port=3301
But, the issue with this approch is that, during dba.configureInstance(), it wants to update the port to default value and throws error like so
введите описание изображения здесь
Любой, кому удалось создать такой кластер из mysql -серверных контейнеров, работающих на разных серверах, я был бы очень признателен за указатели в этом отношении.