mysql 读写分离

mysql 读写分离

数据库版本一致为前提:

主数据库 192.168.1.110

1、my.ini

[mysqld]下增加

server-id=1
log-bin=mysql3306-bin
binlog-do-db=test       //要同步的mstest数据库,要同步多个数据库,就多加几个binlog-do-db=数据库名;如果不设置,默认全部
binlog-ignore-db=mysql  //要忽略的数据库
binlog_format=mixed        //srb brb  srb对应非事务,有些函数无法一致如UUID();brb事务,完全复制,日志较大;mixed混合模式

2、重启服务

3、同步用户

#授权用户slave01使用123456密码登录mysql
mysql>
GRANT REPLICATION SLAVE,FILE ON *.* TO 'mstest'@'192.168.1.111' IDENTIFIED BY '123456';  --IP为从数据库的
flush privileges;

4、mysql>show master status;

一般做法:
给从库分配一个普通用户。
将slave数据库read-only=1设置只读后
在master执行
mysql>GRANT USAGE ON *.* TO 'mstest'@'192.168.1.111' IDENTIFIED BY '123456' WITH GRANT OPTION;(这里要区别上面给从库分配复制权限的写法,这里分配的是usage权限, 后面多了with grant option)

创建一个普通用户,

然后用普通用户登录从库,执行操作会报错。切换到root用户后还是可以进行增删改查的。

===============================分割线=======================================

从数据库 192.168.1.111

1、my.ini

[mysqld]下增加

server-id=2
read_only=1        //只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作
                //如果想保证super用户也不能写操作,就可以就需要执行给所有的表加读锁的命令 “flush tables with read lock;”
2、重启服务

3、root执行

mysql>
 CHANGE MASTER TO
 master_host='192.168.1.110',//主数据库IP
 master_user='mstest',//主机的用户(就是刚刚在主机通过sql创建出来的账户)
 master_password='123456',
 master_port=3306,
 master_log_file='mysql3306-bin.000006',//File(192.168.1.110中第4步信息)
 master_log_pos=1120;//Position(192.168.1.110中第4步信息)


============测试==========

在主数据库中操作,再去从数据库看效果,省略。。。

=================================可能故障=====================================
从数据库操作
MySQL同步故障:"Slave_SQL_Running:No"

1、mysql> slave stop;
          set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
          slaver start;

2、mysql> slave stop;
          change master to ......(主数据库的show master status信息)
          slaver start;

=================================注意事项=====================================
注意:如果网络断了,主从网,那么网络通后,从数据库服务器要重启mysql服务,然后自动同步数据了

如果主数据库存在数据了,则主:
mysql> flush tables with read lock; 并记录status信息
然后拷贝主的data文件到从data里
mysql> unlock tables;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值