Docker 单机测试 MariaDB Galera Cluster

最近工作有mysql集群的需要,做个学习记录。

创建网桥

作用:容器可以直接通过容器名称通信,不用设置IP。

docker network create mgc

目录、配置文件初始化

mkdir -p /opt/mgc/config /opt/mgc/data01 /opt/mgc/data02 /opt/mgc/data03
chown -R 1001:1001 /opt/mgc
cat <

节点1

docker run -itd --name mgc01 \
--hostname mgc01 \
--network mgc \
-p 3306:3306 \
-v /opt/mgc/config/my.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf \
-v /opt/mgc/data01:/bitnami/mariadb \
-e MARIADB_GALERA_CLUSTER_BOOTSTRAP=yes \
-e MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://mgc01,mgc02,mgc03 \
-e MARIADB_GALERA_MARIABACKUP_USER=mariabackup \
-e MARIADB_GALERA_MARIABACKUP_PASSWORD=mariabackup \
-e MARIADB_ROOT_PASSWORD=123456 \
-e MARIADB_REPLICATION_USER=replication \
-e MARIADB_REPLICATION_PASSWORD=replication \
--restart always bitnami/mariadb-galera

节点2

docker run -itd --name mgc02 \
--hostname mgc02 \
--network mgc \
-p 3307:3306 \
-v /opt/mgc/config/my.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf \
-v /opt/mgc/data02:/bitnami/mariadb \
-e MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://mgc01,mgc02,mgc03 \
-e MARIADB_GALERA_MARIABACKUP_USER=mariabackup \
-e MARIADB_GALERA_MARIABACKUP_PASSWORD=mariabackup \
-e MARIADB_ROOT_PASSWORD=123456 \
-e MARIADB_REPLICATION_USER=replication \
-e MARIADB_REPLICATION_PASSWORD=replication \
--restart always bitnami/mariadb-galera

节点3

docker run -itd --name mgc03 \
--hostname mgc03 \
--network mgc \
-p 3308:3306 \
-v /opt/mgc/config/my.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf \
-v /opt/mgc/data03:/bitnami/mariadb \
-e MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://mgc01,mgc02,mgc03 \
-e MARIADB_GALERA_MARIABACKUP_USER=mariabackup \
-e MARIADB_GALERA_MARIABACKUP_PASSWORD=mariabackup \
-e MARIADB_ROOT_PASSWORD=123456 \
-e MARIADB_REPLICATION_USER=replication \
-e MARIADB_REPLICATION_PASSWORD=replication \
--restart always bitnami/mariadb-galera

查看集群状态

  • 任意节点登录

这里设置的密码是123456,创建容器时传入参数MARIADB_ROOT_PASSWORD指定。

docker exec -it mgc01 mysql -uroot -p
  • mysql执行下面的语句。
SHOW STATUS LIKE 'wsrep_cluster%';

验证同步效果

任意节点导入SQL,或者创建库、表,其它节点能查询到相同的数据即可。
删除也是一样的。

你可能感兴趣的:(Docker 单机测试 MariaDB Galera Cluster)