啟動數據庫命令mysql mysql啟動命令是什么( 二 )


對于啟動選項來說 , 如果啟動選項名由多個單詞組成 , 各個單詞之間用短劃線-或者下劃線_連接起來都應該 , 但是它對應的系統變量的單詞之間一定使用下劃線_連接起來(即通過show查看或set設置時)
服務器程序運行過程中設置系統變量有那么一點牛逼的一點只是 , 對于一大半系統變量來說 , 它們的值應該在服務器程序運行過程中進動作態改寫而不用終止并重啟服務器
不過系統變量有全局和目前會話作用域之分
作用域GLOBAL:全局變量 , 波及服務器的全體操作 。
SESSION:會話變量 , 波及某個軟件連接的操作 。(別名叫LOCAL)
格式:
1. SET [GLOBAL|SESSION] 系統變量名 = 值;
2. SET [@@(GLOBAL|SESSION).]var_name = XXX;
global例如:
1. SET GLOBAL default_storage_engine = InnoDB;
2. SET @@GLOBAL.default_storage_engine = InnoDB;
session例如:
1. SET SESSION default_storage_engine = InnoDB;
2. SET @@SESSION.default_storage_engine = InnoDB;
3. SET default_storage_engine = InnoDB;//默認 session
查看格式:SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
1. SHOW SESSION VARIABLES LIKE 'default_storage_engine';
2. SHOW GLOBAL VARIABLES LIKE 'default_storage_engine';
小心:如果某個軟件變化了某個系統變量在GLOBAL作用周圍的值 , 并不會波及該系統變量在目前已經連接的軟件作用周圍為SESSION的值 , 只會波及后面連入的軟件在作用周圍為SESSION的值 。
補充說明并不是全部系統變量都有著GLOBAL和SESSION的作用周圍
* 有一些系統變量只有著GLOBAL作用周圍 , 比方說max_connections , 表示服務器程序支持同一時間最多有多少個軟件程序進行連接
* 有一些系統變量只有著SESSION作用周圍 , 例如insert_id , 表示在對某個包含AUTO_INCREMENT列的表進行插入時 , 該列初始的值
* 有一些系統變量的值既有著GLOBAL作用周圍 , 也有著SESSION作用周圍 , 例如我們前邊用到的default_storage_engine , 而且其實一大半的系統變量都是這樣的
一些系統變量是只讀的 , 并不應該設置值比方說version , 表示目前MySQL的版本 , 我們軟件是不應該設置它的值的 , 就只能在SHOW VARIABLES語句里查看 。
啟動選項與系統變量的關系啟動選項是在程序啟動時我們程序員傳遞的一些參數 , 而系統變量是波及服務器程序運行行為的變量
* 一大半的系統變量都應該被當作啟動選項傳入
* 一些系統變量是在程序運行過程中全自動生成的 , 是不應該當作啟動選項來設置 , 例如auto_increment_offset、character_set_client啥的
* 一些啟動選項也不是系統變量 , 例如defaults-file
狀態變量為了讓我們更加好的了解服務器程序的運行狀態 , MySQL服務器程序中保護了超級多關于程序運行狀態的變量 , 它們被稱為狀態變量 。
比方說Threads_connected表示目前有多少軟件與服務器建立了連接 , Handler_update表示已經更新了多少行記錄
由于狀態變量是用來展現服務器程序運行狀況的 , 所以它們的值就只能由服務器程序自己來設置 , 我們程序員是不應該設置的
查看格式:
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
例如:
【啟動數據庫命令mysql mysql啟動命令是什么】SHOW STATUS LIKE 'thread%';

推薦閱讀