MySQL 集群

1、创建 实例并启动

mysql-master:

image: mysql:8.0

container_name: mysql-master

environment:

时区上海

TZ: Asia/Shanghai

root 密码

MYSQL_ROOT_PASSWORD: cad2024

ports:

  • "3316:3306"

volumes:

数据挂载

  • /docker/mysql_master/data/:/var/lib/mysql/

配置挂载

  • /docker/mysql_master/conf/:/etc/mysql/conf.d/

command:

将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)

--default-authentication-plugin=mysql_native_password

--character-set-server=utf8mb4

--collation-server=utf8mb4_general_ci

--explicit_defaults_for_timestamp=true

--lower_case_table_names=1

privileged: true

restart: always

mysql-slave:

image: mysql:8.0

container_name: mysql-slave

environment:

时区上海

TZ: Asia/Shanghai

root 密码

MYSQL_ROOT_PASSWORD: cad2024

ports:

  • "3326:3306"

volumes:

数据挂载

  • /docker/mysql-slave/data/:/var/lib/mysql/

配置挂载

  • /docker/mysql-slave/conf/:/etc/mysql/conf.d/

command:

将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)

--default-authentication-plugin=mysql_native_password

--character-set-server=utf8mb4

--collation-server=utf8mb4_general_ci

--explicit_defaults_for_timestamp=true

--lower_case_table_names=1

privileged: true

restart: always

2、修改 master 基本配置
vim /docker /mysql_master /conf/my.cnf

client

default-character-set=utf8

mysql

default-character-set=utf8

mysqld

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#注意:skip-name-resolve 一定要加,不然连接 mysql 会超级慢
#唯一id
server_id=1
#复制是通过二进制日志操作增删改,并记录执行到那个位置
log-bin=mysql-bin
#不止读
read-only=0
#需要备份的数据库模式
binlog-do-db=gulimall_ums
binlog-do-db=gulimall_pms
binlog-do-db=gulimall_oms
binlog-do-db=gulimall_sms
binlog-do-db=gulimall_wms
binlog-do-db=gulimall_admin
#不需要备份的数据库
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
3、修改 slave 基本配置
vim /docker /mysql_ slave /conf/my.cnf

client

default-character-set=utf8

mysql

default-character-set=utf8

mysqld

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
server_id=2
log-bin=mysql-bin
#只读
read-only=1
binlog-do-db=gulimall_ums
binlog-do-db=gulimall_pms
binlog-do-db=gulimall_oms
binlog-do-db=gulimall_sms
binlog-do-db=gulimall_wms
binlog-do-db=gulimall_admin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

4、 为 master 授权用户来他的同步数据

#给backup用户可以访问mysql并进行日志复制

CREATE USER 'backup'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%';
#查看 master 状态
show master status;

5、配置 slaver 同步 master 数据

1)、告诉从mysql需要同步那个主节点
change master to
master_host='117.50.198.127 '
,master_user='backup'
,master_password='123456 '
,mas ter_log_file='mysql-bin.000001'
,master_log_pos=0
,master_port=3316;
2)、启动从库同步
start slave;
3)、查看从库状态
show slave status;

相关推荐
帅次7 分钟前
Android 17 开发者实战:核心更新与应用场景落地指南
android·java·ios·android studio·iphone·android jetpack·webview
Ramble_Naylor13 分钟前
东方通(TongWeb)SpringBoot开发指导
java·spring boot
Mr.Daozhi13 分钟前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具
小程故事多_8019 分钟前
Claude Code自定义workflow skills用法
数据库·人工智能·智能体
大鹏说大话19 分钟前
SQL 排序与分组实战:解决“分组后取最新数据“
android·java·数据库
云烟成雨TD25 分钟前
Spring AI Alibaba 1.x 系列【64】 ReactAgent 长期记忆
java·人工智能·spring
quan263137 分钟前
20260529,日常开发-数据库主从问题
java·mysql·主从·延迟
JacksonMx1 小时前
@Transactional 最佳实践
java·spring boot·spring·性能优化
夏贰四1 小时前
数据建模工具如何筑牢数据根基?数据建模工具怎样落实标准体系?
数据库·数学建模·数据建模工具
Sincerelyplz1 小时前
【AI会议纪要实践】mapReduce、RAG 与结构化输出
java·后端·agent