docker搭建基于percona-xtradb-cluster方案的mysql集群
一、部署环境
序号 | hostname | ip | 备注 |
1 | manager107 | 10.0.3.107 | centos7;3.10.0-957.1.3.el7.x86_64 |
2 | worker68 | 10.0.3.68 | centos7;3.10.0-957.1.3.el7.x86_64 |
3 | worker80 | 10.0.3.80 | centos7;3.10.0-957.1.3.el7.x86_64 |
docker 版本
docker version
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:22 2018
OS/Arch: linux/amd64
Experimental: false Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:19:08 2018
OS/Arch: linux/amd64
Experimental: false
二、安装docker(略)
三、创建swarm集群
选择一台服务器作为manager,比如:manager107,在manager107上执行:
docker swarm init
将加入口令,比如:
docker swarm join --token SWMTKN--06on43srtyq7pzogivo8hvja2lvew7zey9wpdf9cy1h8ju18nc-4l3ic9ur29h8yb30ntl0f2v6x 10.0.3.107:
分别拷到worker68和worker80上执行,即可创建swarm集群。
查看集群节点,在manager107上执行:
docker node ls
结果类似:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
2uuuareav7n9phpfhmpnfscml * manager107 Ready Active Leader 18.09.
w0val5pdhhnhgwzuvbtb2qys9 worker68 Ready Active 18.09.
h4bcpsgw2q9r46qbgbd8erbx7 worker80 Ready Active 18.09.
四、创建一个overlay网络用于mysql集群之间通信
docker network create -d overlay --attachable pxc-net
查看network:
docker network ls
NETWORK ID NAME DRIVER SCOPE
846a843726ca bridge bridge local
35ca60480ba7 docker_gwbridge bridge local
fd148d0596c6 host host local
8f8ohxutlvam ingress overlay swarm
bd8bdb46dd54 none null local
qlvzoa8gmi3k pxc-net overlay swarm
五、拉取percona-xtradb-cluster镜像,并改名
docker pull docker.io/percona/percona-xtradb-cluster
修改tag
docker tag percona/percona-xtradb-cluster pxc
六、分别在三台服务器上创建数据卷和备份卷
在manager107上执行:
[root@manager107 ~]# docker volume create v1
[root@manager107 ~]# docker volume create backup
在worker68上执行:
[root@worker68 ~]# docker volume create v2
[root@worker68 ~]# docker volume create backup
在worker80上执行:
[root@worker80 ~]# docker volume create v3
[root@worker80 ~]# docker volume create backup
七、创建基于percona-xtradb-cluster集群的mysql容器
在manager107上执行:
[root@manager107 ~]# docker run -d -p : -e MYSQL_ROOT_PASSWORD= -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD= -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=pxc-net pxc
在worker68上执行:
[root@worker68 ~]# docker run -d -p : -e MYSQL_ROOT_PASSWORD= -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD= -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node2 --net=pxc-net pxc
在worker80上执行:
[root@worker80 ~]# docker run -d -p : -e MYSQL_ROOT_PASSWORD= -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD= -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql -v backup:/data --privileged --name=node3 --net=pxc-net pxc
说明:
- CLUSTER_NAME:集群名称
- XTRABACKUP_PASSWORD:同步密码
- CLUSTER_JOIN:加入的集群节点
好了,现在可以随便连接一台服务器的3310接口,访问mysql,对该数据库的任何操作都可以实时同步到另外两台。
八、可能出现的问题
容器node1在manager107上正常运行,容器node2或者node3无法启动
进入manager107上的node1容器中的mysql
docker exec -it node1 bash
查看mysql日志
more /var/lib/mysql/innobackup.backup.log
可能出现错误(用户没有RELOAD和PROCESS权限)
Error: failed to execute query LOCK TABLES FOR BACKUP: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
Error: failed to execute query SHOW ENGINE INNODB STATUS: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation
然后进入mysql
mysql -uroot -p
查看是否有“xtrabackup”和“sstuser”两个用户
use mysql;
select * from user;
没有的话,先创建这两个用户,有的话直接授权
创建用户:
create user 'xtrabackup'@'localhost' identified by '';
create user 'sstuser'@'localhost' identified by '';
或者查看权限(以“xtrabackup”为例):
select user,host,Reload_priv,Process_priv from user where user='xtrabackup';
授权:
grant reload, process,create tablespace,lock tables ,replication client,super on *.* to 'xtrabackup'@localhost;
刷新权限:
flush privileges;
docker搭建基于percona-xtradb-cluster方案的mysql集群的更多相关文章
- 移动基于Percona XTRADB Cluster的大数据解决方式
移动基于Percona XTRADB Cluster的大数据解决方式 一.移动的去IOE之旅 近期由于"棱镜门"事件的曝光.引起了国家对信息安全问题的注 ...
- Mycat搭建负载均衡,读写分离的Mysql集群
Mycat搭建负载均衡,读写分离的Mysql集群 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.Mycat-server-1.6.7.4-te ...
- 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...
- Haproxy Mysql cluster 高可用Mysql集群
-----client-----------haproxy---------mysql1----------mysql2------192.168.1.250 192.168.1.1 192.168. ...
- Installing Percona XtraDB Cluster on CentOS
PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节 ...
- mysql高可用之PXC(Percona XtraDB Cluster)
简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1).同步复制,事务要么在所有节点提交或不提交 ...
- Percona XtraDB Cluster
简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1.同步复制,事务要么在所有节点提交或不提交. ...
- PXC(Percona XtraDB Cluster)集群的安装与配置
Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...
- Percona XtraDB Cluster(转)
Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...
随机推荐
- 支持触屏的jQuery轮播图插件
移动轮播图我看到两类, 一款是无线天猫的m.tmall.com和携程,实现了无缝轮播. 一款是蘑菇街的,没有实现无缝轮播. 我自己重写一个,类似天猫. 1.页面代码 <!DOCTYPE html ...
- checkbox中把选项文字与小圆圈关联上
跳舞 唱歌 阅读 睡觉 <form><input id="1" type="checkbox" name="hobbies" ...
- 30 Excellent WordPress Video Tutorials
http://sixrevisions.com/wordpress/30-excellent-wordpress-video-tutorials/ WordPress是一种使用PHP语言开发的博客平台 ...
- Hyperledger Fabric SDK use case 1
///////////////////////////////////////////////////////////////////////:End2endAndBackAgainIT 1.Crea ...
- Sharepoint 2013企业内容管理学习笔记(一) 半自动化内容管理
大家好,今天我来与大家分享一个关于sharepoint2013文档管理方面的一个知识,我相信也许早就有人了解并熟知这项技术了,呵呵,众所周知,sharepoint 有一个很亮的功能,什么?没错,就是文 ...
- matlab练习程序(生成黑白网格)
提供了两种生成方法,一个是自己编程实现,比较灵活:另一个是调用系统的checkerboard函数,似乎只能生成8*8网格. 至于用途,也许可以用来下国际象棋. 自己函数生成: 系统函数生成: 代码如下 ...
- ElasticSearch索引快照
参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/modules-snapshots.html 备份数据之前,要创建一个 ...
- WebService小例子———
WebService学习(刚开始) ———————————————————————————————————————————————————————————————————— WebService:跨平 ...
- Dynamics CRM RibbonWorkbench工具使用
这边用的是RibbonWorkbench2016的工具,导入RibbonWorkbench2016解决方案即可.导入成功后在解决方案下面会多出一个快捷键小图标. 一.基本介绍 二.列表页获取选中记录的 ...
- 爬虫入门之urllib库(一)
1 爬虫概述 (1)互联网爬虫 一个程序,根据Url进行爬取网页,获取有用信息 (2)核心任务 爬取网页 解析数据 难点 :爬虫和反爬虫之间的博弈 (3)爬虫语言 php 多进程和多线程支持不好 ja ...