mysql資料庫全域性唯讀和會話唯讀問題解析

2022-05-26 21:27:13 字數 628 閱讀 7939

對於系統的發布是經常有的事情,有些時候需要隔絕外界對資料庫的更改但是還要求可以讀取資料,對於mss sql 這個就是很簡單,直接屬性—>選項—>唯讀 ,但是對於mysql這是不同的,今天仔細研究了一下mysql對於單獨和例項唯讀的設定

這裡不介紹mysql通過對於賬戶許可權控制來達到資料庫唯讀的方式,這裡主要說明資料庫引數的控制方式

1.read_only引數

解析:這是mysql的全域性引數,預設設定為0

想要整個庫唯讀只需要設定這個引數為為1 即  set global read_only=1;

注意:這個引數是super許可權的使用者和從伺服器從主機複製的執行緒不會被影響,所以主從中建議在從伺服器設定為引數1

對於mysql許可權分配時注意收回super許可權,這樣才可以全域性保證資料庫為唯讀

read_only 引數並不適用臨時表,也不適用於系統服務插入日誌表,總體來講這個引數只是限制不讓沒有super許可權的賬戶修改表的結構和內容,並且具有super許可權的可以對資料庫更新等操作,但是有個缺點就是這個引數是全域性變數,而生產中多數是乙個例項多個資料庫。

延伸:tx_read_only引數,這個引數是乙個全域性和會話變數,並且我測試過這個引數會導致所有的賬戶都只有唯讀許可權,並且儲存引擎是myisam的時候,這個變數也是起作用的。

MySQL資料庫中區分全域性變數和會話變數。

當我們修改資料庫配置時,我們要知道,通過不通過的方式,修改資料庫配置,生命週期是不同的。有時候僅僅在一次會話中有效,有時候全域性生效,就算斷開連線,重啟服務,依然生效。定義 寫在配置檔案中的就是全域性變數,也可以稱之為系統變數。使用 方法一 修改mysql配置檔案。方法二 set global.變數...

mysql資料庫,建立唯讀使用者

使用現有的root使用者登入到mysql。mysql uroot p 2.建立使用者,並授權select查詢許可權,授權遠端訪問許可權,注意,命令中username password指使用者名稱密碼,請自己指定。若要限制僅指定ip可以使用此使用者訪問mysql,將 改為具ip即可。grant sel...

開發筆記 MySQL資料庫建立唯讀使用者

資料庫當前只有乙個root使用者,需要建立乙個唯讀帳戶給其他使用,因使用者是使用資料庫管理工具在其他主機訪問,所以還要開戶遠端訪問許可權,操作步驟如下。1.使用現有的root使用者登入到mysql。mysql uroot p 2.建立使用者,並授權select查詢許可權,授權遠端訪問許可權,注意,命...