美文网首页
docker安装mysql集群

docker安装mysql集群

作者: sakura_L | 来源:发表于2023-03-14 11:57 被阅读0次

1、下载镜像

docker search mysql 找到使用的版本
docker pull +镜像版本

运行镜像 并挂载

docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:8.0

编辑my.cnf文件
[client]
default_character_set=UTF8MB4 #设置编码格式`
[mysqld]`
server_id=101 #指定serverid
binlog-ignore-db=mysql#指定忽视数据库
log-bin=mysql-bin#指定mysql日志文件名
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7 #指定过期时间
slave_skip_errors=1062 #指定跳过特定一场,主键重复
lower_case_table_names=2
gtid_mode=ON #开启global transction模式不再使用指定postion同步
enforce_gtid_consistency=ON


collation_server=utf8mb4_0900_ai_ci
character_set_server=UTF8MB4 
修改完配置后重启master实例

docker restart mysql-master

进入mysql-master容器 并进入数据库

docker exit -it mysql-master /bin/bash
mysql -uroot -proot

创建数据同步用户

create user 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';.

运行从库mysql

修改从库cnf
[client]
default_character_set=UTF8MB4 #设置编码格式
[mysqld]
server_id=102 #指定serverid
binlog-ignore-db=mysql#指定忽视数据库
log-bin=mysql-slave-bin#指定mysql日志文件名
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7 #指定过期时间
slave_skip_errors=1062 #指定跳过特定异常,主键重复
lower_case_table_names=2
gtid_mode=ON #开启global transction模式不再使用指定postion同步
ENFORCE_GTID_CONSISTENCY = ON
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1  
## slave设置为只读(具有super权限的用户除外)
read_only=1
collation_server=utf8mb4_0900_ai_ci
character_set_server=UTF8MB4

两种方式,配置从库连接到主库

1、根据postion从指定位置开始同步

主要使用第二种,8.0之后的语法

2、gtid的方式,自动同步,该方式在从库挂了之后重启,会自动从上次的位置自动同步。

CHANGE REPLICATION SOURCE TO SOURCE_HOST = '192.168.1.51', SOURCE_PORT = 3306, SOURCE_USER = 'slave', SOURCE_PASSWORD = '123456', SOURCE_AUTO_POSITION = 1;

START REPLICA; // slave start;

//START REPLICA IO_THREAD; //单独开启io线程跟sql线程
//START REPLICA SQL_THREAD;

建议使用docker-compose 的方式建立共同的网桥,将主从都放在同一个网桥

相关文章

网友评论

      本文标题:docker安装mysql集群

      本文链接:https://www.haomeiwen.com/subject/hsnfrdtx.html