Centos搭建docker mysql集群

1.执行命令 :docker search mysql

看到有percona 

之后docker pull percona/percona-xtradb-cluster:5.7.21

2.docker images 查看该镜像,tag重命名

docker tag percona/percona-xtradb-cluster:5.7.21 pxc

也可以直接下载一下,之后docker load -i 一下

https://download.csdn.net/download/cyw8998/89044816

3.单独的网段,给MySQL数据库集群使用

docker network create --subnet=172.19.0.0/24 mysql-network

# 查看网卡的信息情况 docker network inspect mysql-network

4.容器持久化

# 创建 volume

docker volume create --name v1

docker volume create --name v2

5.启动docker mysql node1节点

docker run -d -p 13306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=123456 --privileged --name=node1 --net=mysql-network  --ip 172.19.0.6 pxc

6.启动docker mysql node2节点

docker run -d -p 13307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=mysql-network  --ip 172.19.0.7 pxc

另外,修改集群一个点的密码,另一个密码也修改了

docker exec  -it node1 mysql -u root -p

# 修改密码(将'new_password'替换为你想要的新密码)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

ALTER USER 'root'  IDENTIFIED BY 'new_password';

7.当docker里所有pxc都停掉时,集群就失败了,重启需要从mysql_node1开始重启

定位到数据卷v1

cd /var/lib/docker/volumes/v1/_data

修改grastate.dat

# GALERA saved state
version: 2.1
uuid:    e43c4fbd-ed62-11ee-ad0b-aedad39ef51d
seqno:   -1
safe_to_bootstrap: 1

启动mysql_node1容器即可,如果不修改,可能就起不来了,因为得先启动后挂掉的节点

------------------------------------------------------------------------------------

以下为percona/percona-xtradb-cluster:8.0版本的操作:

8.0版本,集群加入需要证书支持:

1.在宿主机上创建证书文件夹

mkdir -m 777 -p ~/pxc-docker-test/config
 
mkdir -m 777 -p ~/pxc-docker-test/cert

2.在config下面创建一个custom.cnf文件

[mysqld]
ssl-ca = /cert/ca.pem
ssl-cert = /cert/server-cert.pem
ssl-key = /cert/server-key.pem
 
[client]
ssl-ca = /cert/ca.pem
ssl-cert = /cert/client-cert.pem
ssl-key = /cert/client-key.pem
 
[sst]
encrypt = 4
ssl-ca = /cert/ca.pem
ssl-cert = /cert/server-cert.pem
ssl-key = /cert/server-key.pem

3.生成证书命令:

docker run --name pxc-cert --rm -v ~/pxc-docker-test/cert:/cert percona/percona-xtradb-cluster:8.0 mysql_ssl_rsa_setup -d /cert

4.执行生成主节点命令:

docker run -d -p 13306:3306 -v v21:/var/lib/mysql -v ~/pxc-docker-test/cert:/cert  -v ~/pxc-docker-test/config:/etc/percona-xtradb-cluster.conf.d  -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC8 -e EXTRABACKUP_PASSWROD=123456 --privileged --name=node21 --net=mysql-network  --ip 172.19.0.6 pxc8

5.执行从节点生成命令:

docker run -d -p 13307:3306 -v v24:/var/lib/mysql -v ~/pxc-docker-test/cert:/cert  -v ~/pxc-docker-test/config:/etc/percona-xtradb-cluster.conf.d  -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC8 -e EXTRABACKUP_PASSWROD=123456 -e CLUSTER_JOIN=node21 --privileged --name=node24 --net=mysql-network  --ip 172.19.0.7 pxc8

6.查看结果:

docker logs -f node21

发现有这个:

  members(2):
    0: 8d6bf5ce-ed67-11ee-b5bb-c6de7fb20140, dcde1a7a8301
    1: f04a2728-ed62-11ee-bda6-a6b1acdd59a3, 1dbc166e67b3
 然后在主节点加入数据或建库或建表,发现从节点也跟着变化

相关推荐

  1. centoskubernetes步骤

    2024-03-31 14:52:03       29 阅读
  2. CentosNacos

    2024-03-31 14:52:03       25 阅读
  3. Centosdocker mysql

    2024-03-31 14:52:03       20 阅读
  4. Zookeeper

    2024-03-31 14:52:03       39 阅读
  5. ZooKeeper

    2024-03-31 14:52:03       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 14:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 14:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 14:52:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 14:52:03       20 阅读

热门阅读

  1. SQL 第一章 (准备工作)

    2024-03-31 14:52:03       13 阅读
  2. Docker in Docker原理与实战

    2024-03-31 14:52:03       14 阅读
  3. CSS:样式

    2024-03-31 14:52:03       22 阅读
  4. [leetcode] 228. 汇总区间

    2024-03-31 14:52:03       18 阅读
  5. OD C卷 - 螺旋数组矩阵

    2024-03-31 14:52:03       17 阅读
  6. Clickhouse 查看分区情况

    2024-03-31 14:52:03       23 阅读