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主从复制原理及同步延迟问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现