mysql系統變數檢視和設定

2021-09-11 07:51:07 字數 2029 閱讀 4233

類似於oracle的引數檔案,mysql的選項檔案(如my.cnf)用於配置mysql伺服器,但和oracle叫法不一樣,在mysql裡, 官方叫變數(varialbes),但其實叫引數也是可以的,只要明白這倆是同乙個東西就可以了。

mysql的變數分為以下兩種:

1)系統變數:配置mysql伺服器的執行環境,可以用show variables檢視

2)狀態變數:監控mysql伺服器的執行狀態,可以用show status檢視

系統變數

系統變數按其作用域的不同可以分為以下兩種:

1)分為全域性(global)級:對整個mysql伺服器有效

2)會話(session或local)級:只影響當前會話

有些變數同時擁有以上兩個級別,mysql將在建立連線時用全域性級變數初始化會話級變數,但一旦連線建立之後,全域性級變數的改變不會影響到會話級變數。

檢視系統變數的值

可以通過show vairables語句檢視系統變數的值:

[sql] 

mysql> show variables like 'log%';  

mysql> show variables where variable_name like 'log%' and value='on';  

注意:show variables優先顯示會話級變數的值,如果這個值不存在,則顯示全域性級變數的值,當然你也可以加上global或session關鍵字區別:

[sql] 

show global variables;  

show session/local variables;  

在寫一些儲存過程時,可能需要引用系統變數的值,可以使用如下方法:

[sql] 

@@global.var_name  

@@session.var_name 或  

@@local.var_name  

如果在變數名前沒有級別限定符,將優先顯示會話級的值。

最後一種檢視變數值的方法是從information_schema資料庫裡的global_variables和session_variables表獲得。

在mysql伺服器啟動時,有以下兩種方法設定系統變數的值:

1)命令列引數,如:mysqld --max_connections=200

2)選項檔案(my.cnf)

在mysql伺服器啟動後,如果需要修改系統變數的值,可以通過set語句:

[plain] 

set global var_name = value;  

set @@global.var_name = value;  

set session var_name = value;  

set @@session.var_name = value;  

如果在變數名前沒有級別限定符,表示修改會話級變數。

注意:和啟動時不一樣的是,在執行時設定的變數不允許使用字尾字母'k'、『m'等,但可以用表示式來達到相同的效果,如:

[sql] 

set global read_buffer_size = 2*1024*1024  

這裡乙個容易把人搞蒙的地方是如果查詢時使用的是show variables的話,會發現設定好像並沒有生效,這是因為單純使用show variables的話就等同於使用的是show session variables,查詢的是會話變數,只有使用show global variables,查詢的才是全域性變數。

網路上很多人都抱怨說他們set global之後使用show variables查詢沒有發現改變,原因就在於混淆了會話變數和全域性變數,如果僅僅想修改會話變數的話,可以使用類似set wait_timeout=10;或者set session wait_timeout=10;這樣的語法。

狀態變數

狀態變數可以使我們及時了解mysql伺服器的執行狀況,可以使用show status語句檢視。

狀態變數和相同變數類似,也分為全域性級和會話級,show status也支援like匹配查詢,比較大的不同是狀態變數只能由mysql伺服器本身設定和修改,對於使用者來說是唯讀的,不可以通過set語句設定和修改它們。

MySQL 變數(引數)的檢視和設定

mysql 變數 引數 的檢視和設定 類似於oracle的引數檔案,mysql的選項檔案 如my.cnf 用於配置mysql伺服器,但和oracle叫法不一樣,在mysql裡,官方叫變數 varialbes 但其實叫引數也是可以的,只要明白這倆是同乙個東西就可以了。mysql的變數分為以下兩種 1 ...

mysql 檢視系統變數 MySQL之系統變數

系統變數分為全域性變數和會話變數。全域性變數,會影響到整個伺服器。而會話變數,只會影響到當前的會話 即當前的資料庫連線 1 輸出全域性變數 mysql show global variables 檢視某個全域性變數 mysql show global variables like version v...

設定和檢視 Ubuntu 環境變數

設定環境變數 export var name value export path path path to your dir 檢視環境變數 env 檢視全部 env var name 檢視某變數借助 python 的 os 模組 設定環境變數 os.environ 環境變數名稱 環境變數值 其中ke...