MySQL 读写分离

先决条件:主从服务器数据一致,主服务器刷新并生成一个新的 bin-log 日志

flush logs;

 

1、主服务器配置

主服务器 MySQL 授权从服务器用户

主服务器:192.168.01.1,从服务器:192.168.01.2; 主服务器授权用户:slave

GRANT replication slave ON *.* TO 'slave'@'192.168.01.2' IDENTIFIED BY '1234'; 

修改主服务器的配置文件my.cnf,开启binlog

log_bin = mysql-bin // 开启binlog 日志
binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed
server-id=101 //为服务器设置唯一 id,一个文件只有一个server-id

 

2、从服务器的配置

修改my.cnf 配置文件

log_bin = mysql-bin // 开启binlog 日志
server_id=2 // 一个配置文件一个server-id
master-host=192.168.01.1 // 主服务器IP
master-user=slave// 主服务器用户名
master-password=1234  // 主服务器密码
master-port=3306 // 主服务器端口 

或者命令行输入

MySQL 服务重启

service mysqld restart 

查看是否配置成功:

show slave status\G;

 

Slave_IO_Running :从主服务器成功的bin-log日志同步并拿到数据

Slave_SQL_Running: 从服务器成功地执行SQL语句

上面两项均为yes,说明配置成功。

 

从服务器相关命令

start slave; //启动从服务器
stop slave; // 停止从服务器
show slave status; // 查看从服务器状态
show master logs; // 查看主服务器 bin-log 日志
change master to ……  // 动态改变到主服务配置
show processlist;  // 查看从服务器运行进程

 

主从数据不一致

第一种方法

stop slave;
set  global sql_slave_skip_counter=1; //跳过一步错误
start slave;

第二种方法:

stop slave;
show master status;// 查看主服务器bin-log日志
change master to…… // 手动同步 ,指定日志文件和文件位置 master-log-file="mysql-bin.00001"  master-log-pos=20

重启从服务器,查看 show slave status\G,Slave_IO_Running、Slave_SQL_Running 都为 YES,同步成功。

 

相关文章:Mysql主从复制原理及同步延迟问题

posted @   柔和的天空  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示