没有实验过程了。
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;