Docker部署mysql ndbcluster8

举报
江晚正愁余 发表于 2024/01/22 17:11:44 2024/01/22
【摘要】 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[nd...

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个月内不可修改。