首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql-server停靠容器在多台服务器上创建MySQL集群。

使用mysql-server停靠容器在多台服务器上创建MySQL集群。
EN

Stack Overflow用户
提问于 2020-07-10 15:03:08
回答 1查看 1K关注 0票数 2

我正在尝试使用MySQL码头容器创建一个由3个节点组成的mysql-服务器集群。

我有3单独的云实例,和docker都是在它们上安装的。每个服务器将只有一个容器运行在它上----以实现集群中的高可用性。

我使用命令分别在所有3台服务器上启动容器

代码语言:javascript
复制
docker run --name=db -p 3301:3306 -v db:/var/lib/mysql -d mysql/mysql-server

我正在将容器的端口3306映射到我的服务器的3301端口。我还为远程访问创建了一个新用户“clusteradmin”。

接下来,在mysql-shell中,我为所有3台服务器运行了以下命令

代码语言:javascript
复制
dba.configureInstance('clusteradmin@serverIp:3301')

我也收到了类似的信息-

Note,它说‘这个实例报告自己的地址为39xxxxxxxxx:3306’。

接下来,我成功地在其中一个服务器中创建了一个集群。但是,当将其他2台服务器添加到这个集群时,我会得到以下错误

在检查该特定服务器的日志时,我看到以下几行

它说“对等地址a 9yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy:33061无效”。这是因为,由于容器在不同的服务器上运行,其他服务器上的其他容器无法识别容器id。

我尝试了许多选择,但都没有结果。一种方法是在启动容器时使用报表主机和报表端口选项,如下所示

代码语言:javascript
复制
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

但是,这种方法的问题是,在dba.configureInstance()期间,它希望将端口更新为默认值,并像这样抛出错误

如果有人成功地创建了运行在不同服务器上的mysql-服务器容器集群,我将非常感谢这方面的指针。

EN

回答 1

Stack Overflow用户

发布于 2021-05-07 15:33:11

我已经浏览了文档和源代码,但没有找到为什么侦听和广告不同端口是有问题的解释。

我在调用mysql-server时使用--port 3301解决了这个问题:

代码语言:javascript
复制
docker run --name=db2 -p 3301:3301 -v db2:/var/lib/mysql -d mysql/mysql-server --report-host=139.59.11.215 --port 3301
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62837078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档