我试着在码头群设置上安装mysql集群。考虑到我们有3个节点(1个管理器,2个工作人员),我们试图在manager节点上安装它。
这是my.cnf文件(正确读取)
[mysqld]
ndbcluster
ndb-connectstring=management1
user=mysql
skip_name_resolve
[mysql_cluster]
ndb-connectstring=management1这是mysql-cluster.cnf文件(正确读取)
[ndbd default]
NoOfReplicas=2
DataMemory=80M
[ndb_mgmd]
HostName=management1
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=ndb1
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=ndb2
DataDir=/var/lib/mysql-cluster
[mysqld]
HostName=mysql1Docker组合文件(通过portainer从git存储库部署)执行ex: docker堆栈部署-复合文件停靠器-Compose.yml vossibility
version: '3.3'
services:
management1:
image: mysql/mysql-cluster
command: ndb_mgmd
networks:
- "meroex-network"
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
ndb1:
image: mysql/mysql-cluster
command: ndbd
networks:
- "meroex-network"
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
ndb2:
image: mysql/mysql-cluster
command: ndbd
networks:
- "meroex-network"
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
mysql1:
image: mysql/mysql-cluster
ports:
- "3306:3306"
restart: always
command: mysqld
depends_on:
- "management1"
- "ndb1"
- "ndb2"
networks:
- "meroex-network"
deploy:
placement:
constraints:
- node.role == manager
networks:
meroex-network:
external: true该网络是一个带有子网/24的覆盖网络。
[
{
"Name": "meroex-network",
"Id": "vs7lmefftygiqkzfxf9u4dqxi",
"Created": "2021-10-07T06:29:10.608882532+08:00",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.3.0/24",
"Gateway": "10.0.3.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
...
"lb-meroex-network": {
"Name": "meroex-network-endpoint",
"EndpointID": "a82dd38ffeb66e3a365140b51d8614fdf08ca0f0ffb01c8262a16bde49c891ad",
"MacAddress": "02:42:0a:00:03:34",
"IPv4Address": "10.0.3.52/24",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4099"
},
"Labels": {},
"Peers": [
...
]
}
]在部署堆栈时,我们在de management1服务中收到以下错误:
2021-10-07 00:03:34 [MgmtSrvr] ERROR -- at line 33: Could not resolve hostname [node 1]: management1
2021-10-07 00:03:34 [MgmtSrvr] ERROR -- Could not load configuration from '/etc/mysql-cluster.cnf'在这种情况下,我一直在问为什么服务名称不被解析。我有许多其他的春季引导应用程序,可以共享他们的服务名称来交流。
发布于 2022-09-07 16:01:01
可能是某些主机名的名称查找出现在名称服务器分配和发布任何地址之前。
默认情况下,管理服务器将验证配置中出现的所有主机名,如果某些查找失败,管理服务器将无法启动。
由于MySQL集群8.0.22有一个配置参数,允许管理服务器在未成功验证所有主机名的情况下启动,适合于按需出现的环境,每次可能出现新的ip地址。
尝试将以下内容添加到mysql-cluster.cnf中
[tcp default]
AllowUnresolvedHostnames=1见手册:https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-tcp-definition.html
https://stackoverflow.com/questions/69474030
复制相似问题