mysql read_only与flush table with read lock

没有实验过程了。
ALL PRIVILEGES权限:

 # 除非grant option权限,

SUPER privileges:

# 超级权限

普通用户权限:

 SELECT UPDATE INSERT ......

read_only:

When the read_only system variable is enabled, 
the server permits no client updates except from users who have the SUPER privilege. 
This variable is disabled by default.

FLUSH TABLE WITH READ LOCK:

锁表,只读,任何用户都没有写入数据库的权限。
一:mysql单机架构

1、read_only

SET GLOBAL read_only=ON
 1、SUPER,ALL PRIVILEGES,root,具备修改数据库的能力
 2、普通用户则没有,报只读错误

2、read_only + flush table with read lock

SET GLOBAL read_only=ON
flush table with read lock
1、SUPER,ALL PRIVILEGES,root,修改数据库提交事物之后会被暂停。
       1、要么自己退出
       2、要么等解除表锁之后继续此事物
2、普通用户直接报只读错误
二:mysql主从复制架构

1、从数据库read_only

 单机一样,此时的mysql 主从同步复制是可以正常进行

2、从数据库read_only + flush table with read lock

  单机一样,此时的mysql主从同步复制是不能正常进行。
        1、从服务器可以将主服务器的二进制日志读取过来(日志记录位置)
        2、从服务器不能更新数据到数据库,需要解表锁之后才可以将数据写入到数据库。

1、要避免往从库写入数据,需要避免普通用户赋予super & all权限。
2、flush table with read lock应该比较常用于master锁表,同步数据时。
3、解锁表:unlock table;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容