MySQL主从复制读写分离笔记

一、主从复制原理

  • 主库(Master):负责写入,开启 binlog 日志
  • 从库(Slave):负责读取,通过 IO 线程同步 binlog
  • 最终目标:主从数据一致,实现读写分离

二、主库配置(my.cnf)

ini

复制代码
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=ROW
expire_logs_days=7

重启:

bash

运行

复制代码
systemctl restart mysqld

三、主库创建复制账号

sql

复制代码
CREATE USER 'myslave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'%';
FLUSH PRIVILEGES;

查看 binlog 位置:

sql

复制代码
SHOW MASTER STATUS;

记下:

  • File: mysql-bin.000001
  • Position: 156

四、从库配置(my.cnf)

ini

复制代码
[mysqld]
server-id=2
relay_log=relay-bin
read_only=1

重启:

bash

运行

复制代码
systemctl restart mysqld

五、从库关联主库

sql

复制代码
CHANGE MASTER TO
MASTER_HOST='192.168.x.x',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;

启动复制:

sql

复制代码
START SLAVE;

查看状态:

sql

复制代码
SHOW SLAVE STATUS\G

成功标志:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
相关推荐
chudonghao19 分钟前
[UE学习笔记][基于源码] 运行时网格 PMC / DMC / RMC
笔记·学习·ue5
爱莉希雅&&&1 小时前
Ansible+Docker案例(含ansible配置安装docker)
linux·运维·mysql·nginx·docker·容器·ansible
智者知已应修善业1 小时前
【51单片机调用__TIME__无法实时时间】2023-7-10
c++·经验分享·笔记·算法·51单片机
Tutankaaa1 小时前
防震减灾知识竞赛题库:地震常识、应急避险与自救互救指南
经验分享·笔记·学习
wljt1 小时前
SpringBoot学习笔记五:Spring Boot的web开发
spring boot·笔记·学习
SarL EMEN1 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
Hello_Embed2 小时前
嵌入式上位机开发入门(二十八):JSON 与 JsonRPC 入门
网络·笔记·网络协议·tcp/ip·嵌入式
银河系的一束光2 小时前
net start mysql 服务名无效。 请键入 NET HELPMSG 2185 以获得更多的帮助
数据库·mysql
untE EADO2 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
android·sql·mysql
U盘失踪了2 小时前
Playwright codegen脚本录制
笔记