当前位置: 首页 > backend >正文

mysql8.4.3配置主从复制

先把数据库导出sql,导入从库,列表库必须存在,并且初始值一样,然后就可以按照下面的日志同步了

1、主库

# 主库复制必备设置
server-id=1                    # 主库ID必须为1
log-bin=mysql-bin              # 启用二进制日志
#binlog-do-db=*                 # 可选:指定需要复制的数据库,*表示所有库
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog_format=ROW              # 推荐使用ROW格式
log-slave-updates=1            # 允许从库将复制事件写入自己的binlog
expire-logs-days=90            # 二进制日志保留天数

2、从库

server-id=2
log-bin=mysql-bin
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
# 完全只读模式,仅复制线程可写,
# super_read_only=1 
binlog_format=ROW
# 跳过"Can't find record"错误,这个开启,就是操作主库,从库没有的数据,报错,导致从库停止,开启后,不会停止,出现这一种情况,就是全量同步没做好,全量好,不会有这一种问题,如果需要就开启,操作到从客户没有的数据不报错
# slave_skip_errors = 1032  
# 跳过 "Operation DROP USER failed" 错误,跳过创建用户错误,删除了原同步账号,在创建
slave_skip_errors = 1396  

3、主库执行命令

--SHOW BINARY LOGS;
SHOW BINARY LOG STATUS

需要这两个值
在这里插入图片描述
主库创建复制账号,密码

CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;

4、从库执行命令

-- 步骤1: 停止复制IO线程
STOP REPLICA IO_THREAD;
-- 停止所有
STOP REPLICA;-- SOURCE_LOG_FILE='主库SHOW BINARY LOG STATUS输出的File值',
-- SOURCE_LOG_POS=主库SHOW BINARY LOG STATUS输出的Position值;
CHANGE REPLICATION SOURCE TOSOURCE_HOST='IP地址',SOURCE_USER='repl_user',SOURCE_PASSWORD='password',SOURCE_PORT=40010,SOURCE_LOG_FILE='binlog.000015',SOURCE_LOG_POS=1351,SOURCE_AUTO_POSITION=0;-- 步骤3: 启动复制IO线程
START REPLICA IO_THREAD;
#启动复制,在从服务器(node节点上面)
START replica;-- 步骤4: 验证复制状态
SHOW REPLICA STATUS;

完整配置

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4
no-auto-rehash[mysqld]
port=3306
datadir = /usr/local/mysql/data
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
max_connections=2000
default-storage-engine=INNODB
innodb_lock_wait_timeout = 120innodb_use_native_aio = 0default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 30M
max_allowed_packet = 100M
table_open_cache = 4096
sort_buffer_size = 20M
net_buffer_length = 40K
read_buffer_size = 20M
read_rnd_buffer_size = 556K
myisam_sort_buffer_size = 40M
thread_cache_size = 512
tmp_table_size = 50M
explicit_defaults_for_timestamp = true
#skip-name-resolve
open_files_limit = 65535
binlog_expire_logs_seconds = 600000
slow_query_log=1
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 200M
innodb_log_file_size = 20M
innodb_log_buffer_size = 20M
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 56
innodb_write_io_threads = 56sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION[mysqldump]
quick
max_allowed_packet = 100M[myisamchk]
key_buffer_size = 100M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M[mysqlhotcopy]
interactive-timeout# 主库复制必备设置
server-id=1                    # 主库ID必须为1
log-bin=mysql-bin              # 启用二进制日志
#binlog-do-db=*                 # 可选:指定需要复制的数据库,*表示所有库
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog_format=ROW              # 推荐使用ROW格式
log-slave-updates=1            # 允许从库将复制事件写入自己的binlog
expire-logs-days=7             # 二进制日志保留天数

[mysqld]
port=33306
basedir=E:\mysql8.4.3\mysql-8.4.3-winx64
datadir=E:\mysql8.4.3\mysql-8.4.3-winx64\data
max_connections=2000server-id=2
log-bin=mysql-bin
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
# 完全只读模式,仅复制线程可写
# super_read_only=1 
binlog_format=ROW
# 跳过"Can't find record"错误,这个开启,就是操作主库,从库没有的数据,报错,导致从库停止,开启后,不会停止,出现这一种情况,就是全量同步没做好,全量好,不会有这一种问题,如果需要就开启,操作到从客户没有的数据不报错
# slave_skip_errors = 1032 
# 跳过 "Operation DROP USER failed" 错误,跳过创建用户错误,删除了原同步账号,在创建
slave_skip_errors = 1396  
http://www.xdnf.cn/news/8546.html

相关文章:

  • 鸿蒙进阶——Framework之Want 隐式匹配机制概述
  • ch11题目参考思路
  • linux移植lvgl
  • 经典密码学和现代密码学的结构及其主要区别(1)维吉尼亚密码—附py代码
  • 模拟交易新维度:如何通过自营交易考试实现策略收益双提升?
  • PTA L1系列题解(C语言)(L1_105 -- L1_112)
  • OCC导入进度显示
  • Makefile快速入门
  • 直播预告 | 共探“数字化转型新引擎”,蓝卓工业互联网+AI对话夜等你来
  • 数字计数--数位dp
  • C 语言学习笔记(指针4)
  • golang 垃圾收集机制
  • 防火墙NAT地址组NAT策略安全策略
  • 50 python Matplotlib之Seaborn
  • Python爬虫实战:研究Cola框架相关技术
  • 开发工具整理
  • Python初始Flask框架
  • 敦煌网测评从环境搭建到风控应对,精细化运营打造安全测评体系
  • 【自定义类型-结构体】--结构体类型,结构体变量的创建和初始化,结构体内存对齐,结构体传参,结构体实现位段
  • ComfyUI Chroma解锁文生图新维度;OpenMathReasoning数学推理数据集,首个专注数学推理的高质量数据集
  • 深入探索 CSS 中的伪类:从基础到实战​
  • 文件目录名称无效?数据恢复全流程与常见问题解析
  • CMA/CNAS认证电子签章审计追踪 质检 LIMS 系统应用要点
  • 电子电路:什么是滤波器,什么优势高通滤波器?
  • Cookie、Session、JWT
  • 吃出 “颈” 松:痉挛性斜颈的饮食调养之道
  • Redis从入门到实战 - 原理篇
  • lua脚本实战—— Redis并发原子性陷阱
  • I-CON: A UNIFYING FRAMEWORK FOR REPRESENTATION LEARNING
  • 从Android开发聊技术