天天看點

mysql中的read_only和super_read_only

在引入super_read_only之前,mysql提供了一個選項read_only。開啟read_only之後,會阻止沒有super權限的使用者執行資料庫更新操作。read_only主要用于複制節點。

super_read_only不僅會阻止普通使用者,也會阻止具有super權限的使用者對資料庫寫操作。

read_only和super_read_only是有關聯的。預設二者都是關閉的:

·如果開啟了super_read_only,即使使用者有super權限,也會被禁止更新操作

·設定super_read_only=on,也就隐式地設定了read_only=on

·設定read_only=off,也就隐式地設定了super_read_only=off

即使設定read_only=on,mysql還支援以下的操作行為:

·如果是複制節點,replica線程執行update操作

·使用analyze table、optimize table語句。read only是為了避免對表結構或者内容進行修改。而這些指令不會。

·對temporary表進行操作

·向日志表(mysql.general_log、mysql.slow_log)插入記錄

·mysql 5.7.16開始,更新performance schema表,比如update、truncate表操作

繼續閱讀