mysql - MySQL-Cluster 无法启动
问题描述
这不是我第一次创建ndb集群,但我没有收到这样的问题。
我正在按照mysql 团队的手册进行操作。
我正在使用此 GitHub 存储库中回显的默认配置。
当我启动我的 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
容器立即退出。我不确定这是否是一个错误,因此我用 SO 编写它。
解决方案
这是一个错误。
我运行普通的 echo 并且 --user= 由 docker 映像附加到命令行。
$ 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 镜像被修复之前,您可以尝试以下解决方法。
在启动 ndb 进程时,它会覆盖错误的入口点脚本--entrypoint=/usr/bin/env
(注意,必须在 image 之前mysql/mysql-cluster
)。
并使用从https://github.com/mysql/mysql-docker/blob/main/mysql-cluster/8.0/docker-entrypoint.sh的入口点脚本中提取的显式命令行选项。
对于管理服务器覆盖入口点并添加-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
两个数据节点(我选择ndbmtd
而不是ndbd
)覆盖入口点并添加--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-cluster 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==
推荐阅读
- javascript - 如何使用 vuetify 减少 vue js 构建大小?
- go - 迭代golang无缓冲通道时输出混乱
- d3.js - 以 Topojson 名称选择单词的国家/地区的条件颜色
- litespeed - 无法重置 OpenLiteSpeed WebAdmin 控制台密码
- python - 根据行的值连接或连接两个数据框
- javascript - 问题:无法将样式更改为 JavaScript 中的“点击”事件
- javascript - Webpack 配置变量
- routes - codeigniter 4 路由命名路由不生成href
- javascript - Reactjs中获取的Ajax请求状态码识别
- terraform - 如何从`aws_apigatewayv2_stage`获取`https`invoke_url?