美文网首页
docker下的集群搭建部署(一)Mysql集群

docker下的集群搭建部署(一)Mysql集群

作者: 是takiku啊 | 来源:发表于2019-12-27 16:13 被阅读0次

1、安装mysql集群(PXC)

docker pull percona/percona-xtradb-cluster

2、创建docker内部网络

docker network create --subnet=172.18.0.0/16 net1

查看刚才创建的网络

docker network inspect net1

3、创建docker卷

docker volume create --name v1
docker volume create --name v2
...

创建备份数据卷(用于热备份数据)

docker volume create --name backup

查看刚才创建好的卷

docker inspect v1

4、创建节点

docker run -di -p 3306:3306 \
-v v1:/var/lib/mysql \
-v backup:/data \
-e MYSQL_ROOT_PASSWORD=960930 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=960930 \
--privileged=true --name=node1 --net=net1 --ip 172.18.0.2 \
pxc
 
docker run -di -p 3307:3306 \
-v v2:/var/lib/mysql \
-v backup:/data \
-e MYSQL_ROOT_PASSWORD=960930 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=960930 \
-e CLUSTER_JOIN=node1 \
--privileged=true --name=node2 --net=net1 --ip 172.18.0.3 \
pxc

docker run -di -p 3308:3306 \
-v v3:/var/lib/mysql \
-v backup:/data \
-e MYSQL_ROOT_PASSWORD=960930 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=960930 \
-e CLUSTER_JOIN=node1 \
--privileged=true --name=node3 --net=net1 --ip 172.18.0.4 \
pxc
 
docker run -di -p 3309:3306 \
-v v4:/var/lib/mysql \
-v backup:/data \
-e MYSQL_ROOT_PASSWORD=960930 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=960930 \
-e CLUSTER_JOIN=node1 \
--privileged=true --name=node4 --net=net1 --ip 172.18.0.5 \
pxc
 
docker run -di -p 3310:3306 \
-v v5:/var/lib/mysql \
-v backup:/data \
-e MYSQL_ROOT_PASSWORD=960930 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=960930 \
-e CLUSTER_JOIN=node1 \
--privileged=true --name=node5 --net=net1 --ip 172.18.0.6 \
pxc

第一个节点创建比较慢需要几分钟,如遇到以下几个错误:

  • 1. 连接出错,查看mysql所在的主机端口是否打开,例如阿里云服务器的安全组端口是否开放,例如3306端口
image.png
  • 2.远程连接被拒绝, 查看mysql是否允许被远程连接

查询用户表命令:select User,authentication_string,Host from user;(如果默认都是localhost访问权限)。 则可以创建可以访问的用户名即密码

GRANT ALL PRIVILEGES ON *.* TO '账号'@'%' IDENTIFIED BY '密码';

%代表所有主机,也可以具体到你的主机IP地址
注:用户名处,填写自己的用户名, 密码处,填写自己访问的密码

  • 3.依赖节点1的节点都闪退,启动不起来

docker exec -it node1 bash 进入第一个节点容器
如果进入容器后使用mysql指令出现异常 unknown option --ck;需要先修改容器内mysql配置文件node.cnf , 打开配置文件vi /etc /mysql/node.cnf 将[client]下的‘ck’删除即可。

more /var/lib/mysql/innobackup.backup.log 查看日志
cat /etc/mysql/node.cnf 查看配置 连接密码
发现是用户的问题:没有xtrabackup用户
进入第一个节点,连接mysql 创建xtrabackup用户,授权远程访问,刷新

create user xtrabackup identified by 'password'; //这里的password即上面查看的连接密码
mysql -u root
grant all on *.* to 'xtrabackup'@'%' identified by 'password'; 
flush privileges; //刷新授权

相关文章

网友评论

      本文标题:docker下的集群搭建部署(一)Mysql集群

      本文链接:https://www.haomeiwen.com/subject/roxxnctx.html