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 @ 2020-06-18 22:04  柔和的天空  阅读(184)  评论(0编辑  收藏  举报