因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101
部署MySQL主节点
在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/logs目录,创建好/data/docker/mysql/my.cnf文件,内容如下:
[mysqld]
server-id=100
log-bin=mysql-bin
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
performance_schema_max_table_instances=600
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8
然后创建MySQL镜像,执行
docker run --network=host -d -p 3306:3306 \
--name mysql --privileged=true \
-e MYSQL_ROOT_PASSWORD="888888" -e MYSQL_USER="admin" -e MYSQL_PASSWORD="888888" \
-v=/data/docker/mysql/my.cnf:/etc/my.cnf \
-v=/data/docker/mysql/data:/var/lib/mysql \
-v=/data/docker/mysql/logs:/var/log \
-v=/etc/localtime:/etc/localtime \
arm64v8/mysql:latest --server-id=100
执行成功后,检查MySQL是否启动成功,执行docker ps,出现如下内容表示启动成功
[root@server01 mysql]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50214a2de4f8 arm64v8/mysql:latest "docker-entrypoint.s…" 17 minutes ago Up 17 minutes mysql
进入镜像:docker exec -it mysql /bin/bash
登录MySQL:mysql -uroot -p
依次执行如下命令:
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '888888';
CREATE USER 'slave'@'%' IDENTIFIED BY '888888';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
ALTER USER 'slave'@'%' IDENTIFIED WITH 'mysq