mysql主从授权_MySQL主从复制(10)读写分离授权多种方案

一、生产场景mysql主从复制读写分离授权方案及实战

当配置和好MySQL主从复制以后,所有对数据库内容的更新就必须在主服务器上进行。

那么,为什么所有的更新都要在主服务器上进行呢?这是因为数据复制是单向的,只有在主库上更新,才能避免用户对主服务器上数据库内容的更新与对从服务器上数据库内容的更新一致,而不会发生冲突。

那么,我们又如何确保用户在主服务器上更新呢?

通过发邮件或口头告诉开发人员约定好,不让其写从库?

通过授权用户控制?

其实可行的方法可以有很多,下面我们给大家一一道来。

1、生产MySQL复制环境用户授权方案

208f59018c231b64789616a7b84185b6.png

77ddfccc0571ab747aa0519f8936e0d1.png

5ea08e3c32726760c67eaaa463f25f55.png

f1e3633cdf9ae2c4c59d0a73602bb7eb.png

2、通过忽略授权表的方式防治数据写从库的方法及实践:

从技术手段上让开发人员写不了,而不是约定不让他写。

生产环境中老男孩老师一般会采取忽略授权表方式的同步,然后对从服务器(slave)上的用户仅授权select读权限。不同步mysql库,这样我们就保证主库和从库相同的用户可以授权不同的权限。

忽略mysql库和information_schema,performance_schema库的主从同步。

bb14887a3e5e241153535fb8f959b83d.png

3、通过read-only参数防止数据写从库的方法

除了上面在从库仅做select的授权外,还可以在slave服务器启动选项增加参数或者在my.cnf配置文件中加read-only参数来确保从库只读,当然授权用户和read-only参数二者同时操作效果更佳,这也是我们生产环境中使用的方案。

read-only参数可以让slave服务器只允许来自slave服务器线程或具有super权限的用户的更新。可以确保slave服务器不接受来自普通用户的更新,slave服务器启动选项增加--read-only也是同样功能。

原文:https://www.cnblogs.com/cnxy168/p/11695024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值