MYSQL CLUSTER 在 ubuntu 20 中显示 mgmd init 错误

问题描述

我的 Linux 服务器是 ubuntu 20 MysqL 集群管理服务器 mysql-8.0.23 ndb-8.0.23 MysqL 分发 mysql-8.0.23 ndb-8.0.23,适用于 Linux (x86_64)

当我尝试启动(命令:ndb_mgmd -f config.ini --ndb-nodeid=11MysqL集群mgmd节点时,总是显示错误信息 有人可以帮助我吗? 谢谢

===error message==
2021-04-30 18:02:26 [MgmtSrvr] ERROR    -- The hostname this node should have according to the configuration does not match a local interface. Attempt to bind '172.22.131.159' Failed with error: 9 'Bad file descriptor'
==network interface information==
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNowN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens160: <broADCAST,MULTICAST,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:9b:c7:65 brd ff:ff:ff:ff:ff:ff
    inet 172.22.131.159/24 brd 172.22.131.255 scope global ens160
       valid_lft forever preferred_lft forever***
==config.ini==

[ndbd default]

NoOfReplicas=2

DataMemory=512M

[ndb_mgmd]

HostName=172.22.131.159
NodeID=11
DataDir=/data/MysqL/MysqL-cluster

[ndbd]

HostName=172.22.131.159
NodeId=21
DataDir=/data/MysqL/data

[ndbd]

HostName=172.22.131.160
NodeId=22
DataDir=/data/MysqL/data

[MysqLd]

HostName=172.22.131.159
NodeID=31

解决方法

从 MySQL Cluster 8.0.22 开始,当引入对 IPv6 的支持时,MySQL Cluster 无意中要求内核支持 IPv6(我怀疑您已禁用)。

对不起,请为您的问题提交错误。

与此同时,您可以考虑一些解决方法。

  1. 在内核中保留 IPv6 支持,而是在启动后禁用它。

    • 从内核启动参数中删除 ipv6.disable=1。

    • 改为使用以下方法禁用 IPv6:

      sysctl -w net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1
      

      或者添加对应的/etc/sysctl.conf

  2. 使用不支持 IPv6 的 MySQL Cluster 8.0.21。