mysql 配置主从复制 及 Slave_SQL_Running = no问题排查

一、配置主数据库

1、在mysql 配置文件my.cnf中设置主数据库配置

sql 复制代码
server-id=1 //唯一的标示符
log-bin=mysql-bin //开启二进制日志

2、重启数据库

3、安全规范的写法是新建一个用户给这个用户复制的权限(直接用root也可以不建议)

sql 复制代码
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; //repl用户名 //%代表可以链接的地址%表示任何IP都可以访问 可以把%替换为具体的ip password表示用户名
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';  # 授权复制权限

二、在从库中设置(my.cnf)

1、

sql 复制代码
server-id=2 //唯一的标示符
replicate-do-db = sys //需要同步的库

2、重启数据库

3、设置主库的连接信息

sql 复制代码
CHANGE MASTER TO
  MASTER_HOST='', //主库ip
  MASTER_USER='', //账号  
  MASTER_PASSWORD='', //密码
  MASTER_PORT=3306; //端口

4、重启数据库

三、检查主从状态

在从库上执行SHOW SLAVE STATUS 命令,查看复制状态。

Slave_IO_Running和Slave_SQL_Running都为Yes,表示复制进程正常运行。

==============================>问题排查

重新连接主从后

stop slave 关闭主从

START SLAVE; 开启主从

SHOW SLAVE STATUS; 显示状态

如果Slave_SQL_Running为no

一、去主库执行

sql 复制代码
show master status ; //记住Position
FLUSH PRIVILEGES; //刷新权限
再次执行记住Position
show master status ; //记住Position

二、去从库执行

sql 复制代码
stop slave;  //关闭主从
CHANGE MASTER to  
MASTER_HOST = '',
MASTER_USER = '',
MASTER_PASSWORD = '',
MASTER_PORT = 3306,
MASTER_LOG_POS = 3095; //上面主库的Position
START SLAVE;  //开启主从
相关推荐
剑锋所指,所向披靡!17 分钟前
初始MySQL
数据库·mysql
我是大猴子20 分钟前
解决并发的两种方法(没用到redis)(对上一期的补充)以及开启多个定时任务
数据库·redis·缓存
難釋懷25 分钟前
Redis分片集群散列插槽
数据库·redis·缓存
2501_9110882325 分钟前
Web开发与API
jvm·数据库·python
2501_9110882327 分钟前
使用Python自动收发邮件
jvm·数据库·python
极客on之路29 分钟前
分库分表(四)
数据库
zklgin33 分钟前
【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
数据库·mysql·数据库开发
2401_8898846637 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
李宥小哥42 分钟前
SQLite04-表数据管理
java·jvm·数据库
Smoothcloud_润云1 小时前
GORM 事务管理与 Repository 模式完整指南
前端·数据库·代码规范