天天看點

docker galera mysql,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 <

[mysqld]

slow_query_log = on #開啟慢查詢日志

slow_launch_time = 1 #慢查詢門檻值

slow_query_log_file = mysql-slow.log #慢查詢日志

innodb_buffer_pool_size = 256M #引擎緩存大小

innodb_file_per_table = 1 #表空間獨立存儲

max_connections = 500 #允許最大連接配接數

max_connect_errors = 1000 #允許最多連結錯誤次數

group_concat_max_len = 204800 #允許的最大長度

eof

節點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,或者建立庫、表,其它節點能查詢到相同的資料即可。

删除也是一樣的。