Mysql读写分离配置

说明:
MySQL版本:5.7
Master服务器IP:10.10.31.4
Slave服务器IP:10.10.31.12

Master服务器配置

  • 找到Master服务器MySQL配置文件my.ini,用记事本打开,在[mysqld]下添加主服务相关内容;
log-bin=mysql-bin
log-bin-index=mysql-bin.index
server-id = 1  --服务Id,和slave 的server-id不一样           
sync_binlog=1
binlog_format=mixed
binlog-do-db = testdb --做主从同步的数据库名
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
  • 配置完毕重启MySQL服务;
  • 授权:授权slave同步数据的账号密码。
GRANT REPLICATION SLAVE ON *.*TO '账号'@'Slave地址' IDENTIFIED BY '密码';//账号为slave使用的账号
  • 在Master端,使用以下命令查看Master端状态,需要记住状态的File,和Position参数,在Sla配置中会用到。
show master status;

Slave服务器配置

  • 修改配置:在Sla服务器中找到MySQL的配置文件my.ini,用记事本打开,在[mysqld]下新增以下内容:
server-id=2    --服务Id,和master 的server-id不一样     
log-bin = mysql-bin
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin

sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
  • 重启Slave MySQL服务;
  • Slave关联Master:在MySQL命令行中执行以下命令;
CHANGE MASTER TO
          MASTER_HOST='master_host_name',
          MASTER_USER='replication_user_name',
          MASTER_PASSWORD='replication_password',
          MASTER_LOG_FILE='recorded_log_file_name',
         MASTER_LOG_POS=recorded_log_position;
GRANT REPLICATION SLAVE ON *.* TO 'rep'@'192.168.%'  IDENTIFIED BY '123456';
//master_host_name:master:服务器IP
//replication_user_name:用户名(上面授权)
//replication_password:密码
//recorded_log_file_name:文件名(查看状态得到)
//recorded_log_position:开始位置
  • 重启Slave MySQL服务;
  • 启动Slave,输入以下命令;
start slave;
  • 在命令行中输入以下命令:
show slave status;

若Slave_IO_Running与Slave_SQL_Running都为YES,则读写分离配置成功。

说明

若Slave_IO_Running与Slave_SQL_Running有一个为NO,则读写分离配置不成功。

  • Slave_IO_Running为NO:
    首先查看Master和Slave的server-id是否一致,若一致,需要修改,然后重启slave(start slave)。
 show GLOBAL VARIABLES like  '%server_id%';//查看server_id
 set GLOBAL server_id=2;//重新设置server_id
  • Slave_SQL_Running为NO:
    原因:程序可能在slave上进行了写操作 ,也可能是slave机器重起后,事务回滚造成的。
    解决方法:
1.首先停掉Slave服务:slave stop
2.到主服务器上查看主机状态,记录File和Position对应的值:show master status
3.到slave服务器上执行手动同步:
 change master to 
master_host='10.10.31.4',
 master_user='root', 
master_password='root', 
 master_port=3306, 
master_log_file='mysql-bin.000003', 
master_log_pos=207448;
4.重启Slave:slave start
5.再次查看slave状态发现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值