博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql的主从复制,从库设为只读不能写
阅读量:6265 次
发布时间:2019-06-22

本文共 1128 字,大约阅读时间需要 3 分钟。

mysql的主从复制,主要通过binlog日志来实现

主要步骤:

1、master授权从库连接(master上操作)

grant replication slave on . to 'backup'(用户名)@'192.168.1.131(从库ip)' identified by 'backup'(密码);

2、master上操作:show master status;记录master上的日志文件名、position两个值需要记住后面要用

3、slave上操作:让slave连接master,并开始重做master二进制日志中的事件。master_log_file的值为上面的日志文件名;master_log_pos为position的值

change master to master_host='192.168.1.131(主库ip)',master_user='backup',master_password='backup',master_log_file='ZHAOPAN-PC-bin.000004(日志文件名)',master_log_pos=120(position的值);

4 slave上操作查看从库:show slave status\G;查看第三步的配置信息,并且要查看io进程是否启动,如果没有启动,就执行

start slave;

5 slave上配置只读,在配置文件/etc/my.cnf中的mysqld中配置read_only=1

注意:read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作。

如果想保证super用户也不能写操作,就可以就需要执行给所有的表加读锁的命令 “flush tables with read lock;”

这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。

我们的一般做法是,给从库分配一个普通用户。

将slave数据库read-only=1设置只读后,在master执行GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY'123456'WITH GRANT OPTION;(这里要区别上面给从库分配复制权限的写法,这里分配的是usage权限, 后面多了with grant option)

创建一个普通用户,

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

转载于:https://blog.51cto.com/13120271/2326991

你可能感兴趣的文章
Dockerfile 中的 multi-stage(多阶段构建)
查看>>
nodejs中的cron
查看>>
Failed to import package with error: Couldn't decompress package的解决方案
查看>>
[日常] Go语言圣经-WEB服务与习题
查看>>
javax.websocket.Session的一个close异常记录
查看>>
I2C 12864OLED的工作机制
查看>>
在Unity场景中更改天空盒的步骤
查看>>
hibernate联合主键注解方式
查看>>
JNotify的监测文件变化的简单测试例子
查看>>
ALINX公众号
查看>>
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
查看>>
RedisHelper帮助类
查看>>
js进阶 10-1 JQuery是什么
查看>>
Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)
查看>>
orcale查询表之间的关联关系
查看>>
关于pythoh面向过程开发人员三步转面向对象的补充,再加一步,四步走战略。转面向对象也可以有固定公式。...
查看>>
SVN设置必须锁定
查看>>
(Apache)ab 压力测试 简单使用
查看>>
程序包com.sun.image.codec.jpeg不存在解决方法
查看>>
Linux也有后悔药,五种方案快速恢复你的系统
查看>>