您好,登錄后才能下訂單哦!
本篇內容主要講解“Mysql系統變量與狀態變量是什么意思”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Mysql系統變量與狀態變量是什么意思”吧!
系統變量,就是Mysql針對自己程序運行的一些參數配置。例如通過系統變量我們可以指定諸如允許同時連入的客戶端數量、客戶端和服務器通信方式、表的默認存儲引擎、查詢緩存的大小等設置項。
GLOBAL:全局變量,影響服務器的整體操作。
SESSION:會話變量,影響某個客戶端連接的操作。(注:SESSION有個別名叫LOCAL)
注:
在服務器啟動時,會將每個全局變量初始化為其默認值(可以通過命令行或選項文件中指定的選項更改這些默認值)。然后服務器還為每個連接的客戶端維護一組會話變量,客戶端的會話變量在連接時使用相應全局變量的當前值初始化。
并不是所有系統變量都具有GLOBAL和SESSION的作用范圍。有一些系統變量只具有GLOBAL作用范圍,比方說max_connections,表示服務器程序支持同時最多有多少個客戶端程序進行連接。有一些系統變量只具有SESSION作用范圍,比如insert_id,表示在對某個包含AUTO_INCREMENT列的表進行插入時,該列初始的值。有一些系統變量的值既具有GLOBAL作用范圍,也具有SESSION作用范圍,比如我們default_storage_engine(存儲引擎),而且其實大部分的系統變量都是這樣的。
命令:SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式](不寫GLOBAL或SESSION等同于SESSION);
通過啟動選項設置,如命令:mysqld --default-storage-engine=MyISAM --max-connections=10
,就是配置默認存儲引擎為MyISAM,最大連接數為10。
注:在類Unix系統中,啟動腳本有mysqld、mysqld_safe、mysql.server,其中mysqld代表直接啟動mysql服務器程序,mysqld_safe會在此基礎上啟動一個監控進程,它會將服務器程序的出錯信息和其他診斷信息重定向到某個文件中,產生出錯日志,mysql.server也可以啟動Mysql,使用命令mysql.server start
,效果跟mysqld_safe一樣,mysqld_multi是用于單機多個mysql服務端進程的啟動,停止腳本。
每個MySQL程序都有許多不同的選項。例如,使用mysql --help可以看到mysql程序支持的啟動選項,mysqld_safe --help可以看到mysqld_safe程序支持的啟動選項。查看mysqld支持的啟動選項有些特別,需要使用mysqld --verbose --help。
在my.cnf配置文件中添加啟動選項
配置文件形如:
[server] (具體的啟動選項...) [mysqld] (具體的啟動選項...) [mysqld_safe] (具體的啟動選項...) [client] (具體的啟動選項...) [mysql] (具體的啟動選項...) [mysqladmin] (具體的啟動選項...)
像這個配置文件里就定義了許多個組,組名分別是server、mysqld、mysqld_safe、client、mysql、mysqladmin。每個組下邊可以定義若干個啟動選項。
如在server組下面配置:
[server] default-storage-engine=MyISAM max-connections=10
表示默認存儲引擎為MyISAM,最大連接數為10。
服務器程序運行過程中設置
命令: SET [GLOBAL|SESSION] 系統變量名 = 值 或 SET [@@(GLOBAL|SESSION).]系統變量名 = 值(不寫GLOBAL或SESSION等同于SESSION);
例如:
語句一:SET GLOBAL default_storage_engine = MyISAM;
語句二:SET @@GLOBAL.default_storage_engine = MyISAM;
注:如果某個客戶端改變了某個系統變量在GLOBAL
作用范圍的值,并不會影響該系統變量在當前已經連接的客戶端作用范圍為SESSION
的值,只會影響后續連入的客戶端在作用范圍為SESSION
的值。
MySQL服務器程序中維護了好多關于程序運行狀態的變量,它們被稱為狀態變量,由于狀態變量是用來顯示服務器程序運行狀況的,所以它們的值只能由服務器程序自己來設置,我們程序員是不能設置的。與系統變量類似,狀態變量也有GLOBAL和SESSION兩個作用范圍的。比方說Threads_connected表示當前有多少客戶端與服務器建立了連接,Handler_update表示已經更新了多少行記錄。
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式](不寫GLOBAL或SESSION等同于SESSION;
到此,相信大家對“Mysql系統變量與狀態變量是什么意思”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。