Docker部署mysql ndbcluster集群

举报
江晚正愁余 发表于 2024/01/16 12:04:55 2024/01/16
【摘要】 Docker部署mysql ndbcluster8 一,环境说明1,mysql ndbcluster8集群配置文件mysql-cluster.cnf内容:[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=18M[ndb_mgmd]NodeId=1hostname=192.168.20.2datadir=/var/lib/mysql[...

Docker部署mysql ndbcluster8

一,环境说明

1,mysql ndbcluster8集群配置文件mysql-cluster.cnf内容:

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
NodeId=1
hostname=192.168.20.2
datadir=/var/lib/mysql
[ndbd]
NodeId=2
NodeGroup=1
hostname=192.168.20.3
datadir=/var/lib/mysql
[ndbd]
NodeId=3
NodeGroup=1
hostname=192.168.20.4
datadir=/var/lib/mysql
[ndbd]
NodeId=4
NodeGroup=2
hostname=192.168.20.5
datadir=/var/lib/mysql
[ndbd]
NodeId=5
NodeGroup=2
hostname=192.168.20.6
datadir=/var/lib/mysql
[mysqld]
NodeId=6
hostname=192.168.20.9
[mysqld]
NodeId=7
hostname=192.168.20.10

2,mysql配置文件my.cnf内容:

[mysqld]
log_timestamps = SYSTEM
max_connections = 5000
max_connect_errors = 10000
ndbcluster
ndb-connectstring=192.168.20.2
user=mysql
default-storage-engine=NDBCLUSTER

[mysql_cluster]
ndb-connectstring=192.168.20.2

二,docker部署命令。

1,创建cluster网络

docker network create cluster --subnet=192.168.20.0/24

2,创建mgmd与ndb,mysql相关节点

docker run -d --net=cluster --name=management1 --ip=192.168.20.2 -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro   -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 ndb_mgmd


docker run -d --net=cluster --name=ndb1 --ip=192.168.20.3  -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 ndbd
docker run -d --net=cluster --name=ndb2 --ip=192.168.20.4  -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 ndbd


docker run -d --net=cluster --name=ndb3 --ip=192.168.20.5 -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro  -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 ndbd
docker run -d --net=cluster --name=ndb4 --ip=192.168.20.6  -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 ndbd
 
 


docker run -d --net=cluster --name=mysql1 --ip=192.168.20.9 -e MYSQL_RANDOM_ROOT_PASSWORD=true  -p 3376:3306  -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 mysqld 


docker run -d --net=cluster --name=mysql2 --ip=192.168.20.10 -e MYSQL_RANDOM_ROOT_PASSWORD=true  -p 3386:3306   -e "TZ=Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /mysqlndb/my.cnf:/etc/my.cnf -v /mysqlndb/mysql-cluster.cnf:/etc/mysql-cluster.cnf container-registry.oracle.com/mysql/community-cluster:8.0 mysqld

3,查看集群节点是否正常。

docker exec -it management1 ndb_mgm -e show

root@os71 ~]# docker exec -it management1 ndb_mgm -e show
Connected to Management Server at: 192.168.20.2:1186
Cluster Configuration

[ndbd(NDB)] 4 node(s)
id=2 @192.168.20.3 (mysql-8.0.34 ndb-8.0.34, Nodegroup: 1, *)
id=3 @192.168.20.4 (mysql-8.0.34 ndb-8.0.34, Nodegroup: 1)
id=4 @192.168.20.5 (mysql-8.0.34 ndb-8.0.34, Nodegroup: 2)
id=5 @192.168.20.6 (mysql-8.0.34 ndb-8.0.34, Nodegroup: 2)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.20.2 (mysql-8.0.34 ndb-8.0.34)

[mysqld(API)] 2 node(s)
id=6 @192.168.20.9 (mysql-8.0.34 ndb-8.0.34)
id=7 @192.168.20.10 (mysql-8.0.34 ndb-8.0.34)

三,修改mysql API节点账号与密码

使用随机密码初始化服务器,该密码 需要改变。从日志中获取密码:

docker logs mysql1 2>&1 | grep PASSWORD
如果命令未返回密码,则服务器没有 尚未完成初始化。请稍等片刻,然后重试。一旦你 获取密码,通过使用客户端登录服务器来更改密码:mysql

docker exec -it mysql1 mysql -uroot -p
进入服务器后,使用 以下声明:

mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’;
开启 root 账号远程访问

flush privileges;

use mysql;

update user set host=’%’ where user=‘root’;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。