在docker中部署mysql-cluster
一直想部署个数据库集群,原来一直折腾oracle可却没有成功,花了两天终于把mysql折腾成功啦;准备一台centos电脑和mysql-cluster程序包,下面我们开始吧。第一步我们先安装docker程序,这一步就省略了:[root@localhost ~]# docker -vDocker version 1.12.6, build 1398f24/1.12.6[root@lo
一直想部署个数据库集群,原来一直折腾oracle可却没有成功,花了两天终于把mysql折腾成功啦;准备一台centos电脑和mysql-cluster程序包,下面我们开始吧。
第一步我们先安装docker程序,这一步就省略了:
[root@localhost ~]# docker -v
Docker version 1.12.6, build 1398f24/1.12.6
[root@localhost ~]#
第二步安装centos镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql-node latest d652cc0c3896 10 hours ago 3.878 GB
mysql-manager latest f2f3af5fbef5 10 hours ago 220.3 MB
docker.io/centos latest 3bee3060bfc8 3 weeks ago 192.5 MB
[root@localhost ~]#
第三步我们准备网路环境
Docker守护进程启动以后会创建默认网桥docker0,其IP网段通常为172.17.0.1。在启动Container的时候,Docker将从这个网段自动分配一个IP地址作为容器的IP地址。最新版(1.10.3)的Docker内嵌支持在启动容器的时候为其指定静态的IP地址。
docker network create --subnet=172.18.0.0/16 shadownet
注:shadown为自定义网桥的名字,可自己任意取名。
第四步安装管理节点,运行docker并挂载mysql-cluster文件
docker run -itd --net shadownet --privileged=true --ip 172.18.0.10 -v /document:/usr/Downloads centos /bin/bash
注:挂载的本地目录在容器中没有执行权限时,需要--privileged=true参数
cd /usr/Downloads
tar xvf mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz
cp bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
mkdir /var/lib/mysql-cluster
mkdir /usr/local/mysql
vi /var/lib/mysql-cluster/config.ini
配置内容如下,根据具体情况修改
[ndbd default]
NoOfReplicas=2
DataMemory=256M
IndexMemory=512M
[ndb_mgmd]
nodeid=1
HostName=172.18.0.10
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
nodeid=2
HostName=172.18.0.11
DataDir=/var/lib/mysql-cluster
[ndbd]
nodeid=21
HostName=172.18.0.12
DataDir=/var/lib/mysql-cluster
[ndbd]
nodeid=22
HostName=172.18.0.13
DataDir=/var/lib/mysql-cluster
[mysqld]
nodeid=31
HostName=172.18.0.12
port=3306
[mysqld]
nodeid=32
HostName=172.18.0.13
port=3307
[root@49cd9c30713b /]# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.7.18 ndb-7.5.6
注:保存docker镜像,启动作为第二个管理节点,初始化管理节点
docker commit mysql-manager
第五步安装数据节点和sql节点
新增用户组mysql和用户msyql
# groupadd mysql
# useradd -g mysql -s /bin/false mysql
新建文件夹并赋予权限
# mkdir /var/lib/mysql-cluster
# chown root:mysql /var/lib/mysql-cluster
docker run -itd --net shadownet --privileged=true --ip 172.18.0.12 -v /document:/usr/Downloads centos /bin/bash
cd /usr/Donloads
mv mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql/bin/
./mysqld --initialize
生成临时密码: “o,Z2el6stDh”,这个密码待会要用到。
cd ..
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
vi /etc/my.cnf
配置内容如下
[mysqld]
ndbcluster
ndb-connectstring=172.18.0.10,172.18.0.11
port=3306
[mysql_cluster]
ndb-connectstring=172.18.0.10,172.18.0.11
初始化数据节点
/usr/local/mysql/bin/ndbd --initial
2017-07-01 03:33:30 [ndbd] INFO -- Angel connected to '172.18.0.10:1186'
2017-07-01 03:33:30 [ndbd] INFO -- Angel allocated nodeid: 22
启动sql节点
/etc/init.d/mysql.server start
注:保存并重用, docker commit mysql-node
第六步集群状态
回到172.18.0.10节点的docker
cd /usr/local/bin/
ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=21 @172.18.0.12 (mysql-5.7.18 ndb-7.5.6, Nodegroup: 0, *)
id=22 @172.18.0.13 (mysql-5.7.18 ndb-7.5.6, Nodegroup: 0)
[ndb_mgmd(MGM)] 2 node(s)
id=1 @172.18.0.10 (mysql-5.7.18 ndb-7.5.6)
id=2 @172.18.0.11 (mysql-5.7.18 ndb-7.5.6)
[mysqld(API)] 2 node(s)
id=31 @172.18.0.12 (mysql-5.7.18 ndb-7.5.6)
id=32 @172.18.0.13 (mysql-5.7.18 ndb-7.5.6)
回到172.18.0.12数据节点的docker
修改mysql密码统一,修改mysql的访问权限
cd /usr/local/mysql/
bin/mysql --user=root -p
输入第五步中保存的临时密码
mysql> set password=password('root');
mysql>grant all privileges on *.* to root@'%' identified by 'root';
到此mysql-cluster集群安装结束
再次启动mysql集群时,启动顺序为:管理节点→数据节点→SQL节点。
启动的命令上面都有,删去--initial即可
关闭时只需要关闭管理节点,后面的数据节点会同时被关闭,mysql就和原来一样即可
管理节点关闭命令:ndb_mgm -e shutdown
问题
集群是安装成功了,程序中怎么访问以后再验证,下一步准备安装redis集群
引用
http://www.infocool.net/kb/Mysql/201704/336991.html
更多推荐
所有评论(0)