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

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

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

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

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

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

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

2、重启数据库
3、设置主库的连接信息

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

一、去主库执行

show master status ; //记住Position
FLUSH PRIVILEGES; //刷新权限
再次执行记住Position
show master status ; //记住Position

二、去从库执行

stop slave;  //关闭主从
CHANGE MASTER to  
MASTER_HOST = '',
MASTER_USER = '',
MASTER_PASSWORD = '',
MASTER_PORT = 3306,
MASTER_LOG_POS = 3095; //上面主库的Position
START SLAVE;  //开启主从

你可能感兴趣的:(mysql,sql,数据库)