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

linux mysql 8.X主从复制

准备两台linux服务器,注意要锁ip
在这里插入图片描述
在这里插入图片描述
我这里如上图
主库 192.168.5.5/24
从库 192.168.5.10/24

接下来确定mysql是否启动成功并且能从外部连接

主库
在这里插入图片描述

从库
在这里插入图片描述

主服务器配置

vim编辑主服务器配置

vim /etc/my.cnf

注意是下面那个
在这里插入图片描述
添加配置代码

log-bin=mysql-bin  # 配置二进制日志
server-id=100	#配置服务器id

在这里插入图片描述
配置好后 重启mysql

systemctl restart mysqld

在这里插入图片描述
创建用户当作复制账户

-- 1. 创建用户(如果不存在)
CREATE USER IF NOT EXISTS 'repl_user'@'%' IDENTIFIED BY 'Root@123456';-- 2. 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';-- 3. 刷新权限(使更改生效)
FLUSH PRIVILEGES;

查看MASTER 状态

SHOW MASTER STATUS;

在这里插入图片描述
注意此时不要再操作数据库

从库设置

依旧是去mysql设置id 注意不要一样
在这里插入图片描述
然后重启mysql服务

systemctl restart mysqld

停止现有复制(如果运行中):

STOP REPLICA;

重置复制状态

RESET REPLICA ALL;  -- 清除所有复制配置

执行下面sql配置复制

CHANGE REPLICATION SOURCE TOSOURCE_HOST = '192.168.5.5',SOURCE_USER = 'repl_user',SOURCE_PASSWORD = 'xxxx',SOURCE_LOG_FILE = 'mysql-bin.000001',SOURCE_LOG_POS = 1929,GET_SOURCE_PUBLIC_KEY = 1,  -- 允许获取公钥SOURCE_CONNECT_RETRY = 8,SOURCE_RETRY_COUNT = 1000,    -- 最大重试次数SOURCE_HEARTBEAT_PERIOD = 30, -- 心跳间隔CONNECTION_AUTO_FAILOVER = 1; -- 自动故障转移

启动复制

START REPLICA;

查看状态

SHOW REPLICA STATUS\G

在这里插入图片描述

主库
//设置日志定期清理防止满盘

SET GLOBAL binlog_expire_logs_seconds = 7776000; --保留90天//单位秒

验证
新建aaa
在这里插入图片描述
从机自动创建
在这里插入图片描述
ok

2025-8-8日补充

今天发现虚拟机重启后,主从复制没了
这是因为上面的配置缺少

  1. relay_log_recovery=1 – 中继日志恢复机制
  2. gtid_mode=ON – GTID全局事务标识
  3. enforce_gtid_consistency=ON – GTID一致性检查

先在从库添加

vim /etc/my.cnf

# 启用中继日志自动恢复
relay_log_recovery = 1# 启用GTID复制(避免位点失效)
gtid_mode = ON
enforce_gtid_consistency = ON# 可选:禁止启动时自动开启复制(只是为了方便故障排查)
skip_slave_start = 1

在这里插入图片描述

然后重启
sudo systemctl restart mysqld

然后登录mysql 配置GTID

STOP SLAVE;
RESET SLAVE ALL;-- 使用GTID自动定位(无需手动指定binlog位置)
CHANGE REPLICATION SOURCE TOSOURCE_HOST = '192.168.5.5',			-- 注意替换自己ipSOURCE_USER = 'repl_user',			-- 注意替换自己的用户SOURCE_PASSWORD = '^Lin@log64.ms$',  	-- 注意替换成自己的密码SOURCE_AUTO_POSITION = 1,       		-- ★ 关键改进:使用GTID自动定位 ★GET_SOURCE_PUBLIC_KEY = 1,SOURCE_CONNECT_RETRY = 8,SOURCE_RETRY_COUNT = 1000,SOURCE_HEARTBEAT_PERIOD = 30,SOURCE_SSL = 1,                 -- 新增:启用SSL加密SOURCE_TLS_VERSION = 'TLSv1.3', -- 新增:强制TLS版本NETWORK_NAMESPACE = '';         -- 明确指定网络命名空间START SLAVE;

在这里插入图片描述

主库更改

# 确保binlog持久化
sync_binlog = 1# 启用GTID(与从库匹配)
gtid_mode = ON
enforce_gtid_consistency = ON

在这里插入图片描述
然后登录主库mysql
查看状态

SHOW VARIABLES LIKE 'gtid_mode';

在这里插入图片描述
然后去从库从其slave,并查看状态

STOP SLAVE;
START SLAVE;
SHOW SLAVE STATUS\G;

在这里插入图片描述
重点关注如下字段
在这里插入图片描述
去可视化操作看下,可以发现主从复制好了

在这里插入图片描述
重启模拟关机

注意事项

重要注意事项

如果主库已有数据:需要重新建立全量同步

# 主库备份
mysqldump --all-databases --single-transaction --master-data=2 -uroot -p > full.sql# 从库导入
mysql -uroot -p < full.sql

SSL配置额外步骤(如启用)

  1. 主库生成SSL证书
-- 检查是否已有证书
SHOW VARIABLES LIKE '%ssl%';-- 若无证书,执行(MySQL 8.0+自动生成)
INSTALL COMPONENT "file://component_validate_password";
ALTER INSTANCE ROTATE INNODB MASTER KEY;
  1. 从库配置信任主库证书
-- 主库执行:查看公钥
SHOW STATUS LIKE 'Caching_sha2_password_rsa_public_key';-- 复制公钥值,在从库执行:
SET @@GLOBAL.replication_source_public_key_path = '主库公钥值';
http://www.lryc.cn/news/613857.html

相关文章:

  • 【Linux】从零开始:RPM 打包全流程实战万字指南(含目录结构、spec 编写、分步调试)
  • 避免“卡脖子”!如何减少内存I/O延迟对程序的影响?
  • Function + 异常策略链:构建可组合的异常封装工具类
  • 二叉树、算法
  • 防火墙概述
  • React 原生部落的生存现状:观察“Hooks 猎人“如何用useEffect设陷阱反被依赖项追杀
  • 【Unity3D实例-功能-跳跃】角色跳跃
  • Rocky Linux 10.0下安装使用KVM虚拟机
  • 破界之光:DeepSeek 如何重构AI搜索引擎的文明坐标 || #AIcoding·八月创作之星挑战赛#
  • Mac上安装和配置MySQL(使用Homebrew安装MySQL 8.0)
  • [202403-E]春日
  • 等保测评-Nginx中间件
  • DM8数据库服务正常,但是登录报错 [-70019]:没有匹配的可登录服务器
  • cAdvisor 容器监控软件学习
  • docker下载安装和使用(Hyper-V方式)
  • Socket编程预习
  • AI赋能SEO关键词优化策略
  • 深入理解 robots.txt:网站与搜索引擎的 “沟通协议”
  • sqli-labs通关笔记-第38关 GET字符型堆叠注入(单引号闭合 手工注入+脚本注入两种方法)
  • Dubbo应用开发之基于xml的第一个Dubbo程序
  • 安全扫描:检测到目标站点存在javascript框架库漏洞问题(vue)
  • 13. 搜索引擎-ElasticSearch
  • 深入探索 PDF 数据提取:PyMuPDF 与 pdfplumber 的对比与实战
  • 技术速递|GPT-5 正式上线 Azure AI Foundry
  • 机器学习——06 集成学习
  • AI搜索引擎——DeepSeek崛起 || #AIcoding·八月创作之星挑战赛# || 简单版
  • 机器人焊机智能流量调节
  • 【/usr/bin/env: “bash\r”: 没有那个文件或目录】问题解决
  • 电脑IP地址是“169.254.x.x”而无法上网的原因
  • MetaBit基金会加码投资图灵协议,深化去中心化金融与元宇宙生态合作