Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL群集无法启动_Mysql_Docker_Mysql Cluster - Fatal编程技术网

MySQL群集无法启动

MySQL群集无法启动,mysql,docker,mysql-cluster,Mysql,Docker,Mysql Cluster,这不是我第一次创建ndb集群,但我没有遇到这样的问题 我是mysql团队的追随者 我使用的是默认配置 启动ndb_mgmd容器时,它返回以下错误: $ docker run -d --net=cluster --name=management1 --ip=192.168.0.2 mysql/mysql-cluster ndb_mgmd 我收到的日志是: $ docker logs management1 它返回以下行 [Entrypoint] MySQL Docker Image 8.0.

这不是我第一次创建ndb集群,但我没有遇到这样的问题

我是mysql团队的追随者

我使用的是默认配置

启动ndb_mgmd容器时,它返回以下错误:

$ docker run -d --net=cluster --name=management1 --ip=192.168.0.2 mysql/mysql-cluster ndb_mgmd
我收到的日志是:

$ docker logs management1

它返回以下行

[Entrypoint] MySQL Docker Image 8.0.24-1.2.2-cluster
[Entrypoint] Starting ndb_mgmd
Failed to open /sys/devices/system/cpu/cpu0/cache/index3/shared_cpu_list: No such file or directory
ndb_mgmd: [ERROR] unknown variable 'user='.
MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.24
集装箱马上就出来了。我不确定它是否是一个bug,因此我将它写成SO。

它是一个bug

我运行普通echo,docker image将--user=附加到命令行

$ docker run  -d --net=cluster --name=management1 --ip=192.168.0.2 mysql/mysql-cluster echo
55b11ea72989fad50b29fe199ad54ebe2a919079770d0188512a465699e8a256
$ docker logs management1
[Entrypoint] MySQL Docker Image 8.0.24-1.2.2-cluster
--user=
可能有些变通方法可以启动MySQL服务器,但不适合Ndb程序

编辑#1:

在新的docker图像修复并输出之前,您可以尝试以下解决方法

当使用
--entrypoint=/usr/bin/env
启动ndb进程时,它会覆盖错误的entrypoint脚本(注意,必须在image
mysql/mysql集群之前)

并使用从处的entrypoint脚本中提取的显式命令行选项

对于管理服务器,覆盖入口点并添加
-f/etc/mysql-cluster.cnf--nodaemon

$ docker run -d --net=cluster --name=management1 --ip=192.168.0.2 --entrypoint=/usr/bin/env mysql/mysql-cluster ndb_mgmd -f /etc/mysql-cluster.cnf --nodaemon
$ docker run -d --net=cluster --name=ndb1 --ip=192.168.0.3 --entrypoint=/usr/bin/env mysql/mysql-cluster ndbmtd --nodaemon

$ docker run -d --net=cluster --name=ndb2 --ip=192.168.0.4 --entrypoint=/usr/bin/env mysql/mysql-cluster ndbmtd --nodaemon
两个数据节点(我选择
ndbmtd
而不是
ndbd
)覆盖入口点并添加
--nodaemon

$ docker run -d --net=cluster --name=management1 --ip=192.168.0.2 --entrypoint=/usr/bin/env mysql/mysql-cluster ndb_mgmd -f /etc/mysql-cluster.cnf --nodaemon
$ docker run -d --net=cluster --name=ndb1 --ip=192.168.0.3 --entrypoint=/usr/bin/env mysql/mysql-cluster ndbmtd --nodaemon

$ docker run -d --net=cluster --name=ndb2 --ip=192.168.0.4 --entrypoint=/usr/bin/env mysql/mysql-cluster ndbmtd --nodaemon
启动
mysqld
时,不应覆盖入口点,请遵守手册

编辑#2:

mysql集群docker映像现在已修复,请拉取新映像并重新创建容器

$ docker pull mysql/mysql-cluster
Using default tag: latest
latest: Pulling from mysql/mysql-cluster
Digest: sha256:a8ae8a4358f0c2f07aa39df046eb81e8f88cb2bebcaaf436c67663b300a1e1fe
Status: Image is up to date for mysql/mysql-cluster:latest
docker.io/mysql/mysql-cluster:latest

$ docker run -d --net=cluster --name=management1 --ip=192.168.0.2 mysql/mysql-cluster ndb_mgmd
715ad773b51b3d8fefcf6230460b6149a0a0226ee604752352b9e88d8dfa5bb8

$ docker logs management1
[Entrypoint] MySQL Docker Image 8.0.25-1.2.3-cluster
[Entrypoint] Starting ndb_mgmd
MySQL Cluster Management Server mysql-8.0.25 ndb-8.0.25
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- Sucessfully created config directory
2021-05-12 07:59:21 [MgmtSrvr] WARNING  -- at line 19: [DB] IndexMemory is deprecated, will use Number bytes on each ndbd(DB) node allocated for storing indexes instead
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- Got initial configuration from '/etc/mysql-cluster.cnf', will try to set it when all
ndb_mgmd(s) started
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- Node 1: Node 1 Connected
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- Id: 1, Command port: *:1186
==INITIAL==
2021-05-12 07:59:21 [MgmtSrvr] INFO     -- MySQL Cluster Management Server mysql-8.0.25 ndb-8.0.25 started
2021-05-12 07:59:22 [MgmtSrvr] INFO     -- Node 1 connected
2021-05-12 07:59:22 [MgmtSrvr] INFO     -- Starting initial configuration change
2021-05-12 07:59:22 [MgmtSrvr] INFO     -- Configuration 1 commited
2021-05-12 07:59:22 [MgmtSrvr] INFO     -- Config change completed! New generation: 1
==CONFIRMED==
事实证明,这是一个错误。在修复之前,可以执行以下操作:

1-克隆mysql docker

2-签出早期标签(已检查并验证)

3-构建图像并稍后使用

4-运行管理群集


我希望它能帮助mysql团队解决存储库头的问题。

你使用哪个操作系统,linux、mac还是Windows?@frank_lee我在linux上,ubuntu 20.04 LTS。我在使用Windows,也不能启动容器,错误是
ndb_mgmd:[错误]未知变量“user=”。
太好了,您还可以签出早期版本的代码。向上投票
docker build -t mysql-cluster-customized 8.0/
docker run -d --net=cluster --name=management1 --ip=192.168.0.2 -it  mysql-cluster-customized ndb_mgmd