新聞中心

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)推出廣信免費(fèi)做網(wǎng)站回饋大家。
服務(wù)器維護(hù)著兩種系統(tǒng)變量,即
全局變量(
GLOBAL VARIABLES
)和
會(huì)話變量(
SESSION VARIABLES
)。全局變量影響 MySQL 服務(wù)的整體運(yùn)行方式,會(huì)話變量影響具體客戶(hù)端連接的操作。
每一個(gè)客戶(hù)端成功連接服務(wù)器后,都會(huì)產(chǎn)生與之對(duì)應(yīng)的會(huì)話。會(huì)話期間,MySQL 服務(wù)實(shí)例會(huì)在服務(wù)器內(nèi)存中生成與該會(huì)話對(duì)應(yīng)的會(huì)話變量,這些會(huì)話變量的初始值是全局變量值的拷貝。
查看系統(tǒng)變量
可以使用以下命令查看 MySQL 中所有的全局變量信息。
SHOW GLOBAL VARIABLES;
可以使用以下命令查看與當(dāng)前會(huì)話相關(guān)的所有會(huì)話變量以及全局變量。
SHOW SESSION VARIABLES;
其中,SESSION 關(guān)鍵字可以省略。
MySQL 中的系統(tǒng)變量以?xún)蓚€(gè)“@”開(kāi)頭。
- @@global 僅僅用于標(biāo)記全局變量;
- @@session 僅僅用于標(biāo)記會(huì)話變量;
- @@ 首先標(biāo)記會(huì)話變量,如果會(huì)話變量不存在,則標(biāo)記全局變量。
MySQL 中有一些系統(tǒng)變量?jī)H僅是全局變量,例如 innodb_data_file_path,可以使用以下 3 種方法查看:
SHOW GLOBAL VARIABLES LIKE 'innodb_data_file_path';
SHOW SESSION VARIABLES LIKE 'innodb_data_file_path';
SHOW VARIABLES LIKE 'innodb_data_file_path';
MySQL 中有一些系統(tǒng)變量?jī)H僅是會(huì)話變量,例如 MySQL 連接 ID 會(huì)話變量 pseudo_thread_id,可以使用以下 2 種方法查看。
SHOW SESSION VARIABLES LIKE 'pseudo_thread_id';
SHOW VARIABLES LIKE 'pseudo_thread_id';
MySQL 中有一些系統(tǒng)變量既是全局變量,又是會(huì)話變量,例如系統(tǒng)變量 character_set_client 既是全局變量,又是會(huì)話變量。
SHOW SESSION VARIABLES LIKE 'character_set_client';
SHOW VARIABLES LIKE 'character_set_client';
此時(shí)查看全局變量的方法如下:
SHOW GLOBAL VARIABLES LIKE 'character_set_client';
設(shè)置系統(tǒng)變量
可以通過(guò)以下方法設(shè)置系統(tǒng)變量:
- 修改 MySQL 源代碼,然后對(duì) MySQL 源代碼重新編譯(該方法適用于 MySQL 高級(jí)用戶(hù),這里不做闡述)。
- 在 MySQL 配置文件(mysql.ini 或 mysql.cnf)中修改 MySQL 系統(tǒng)變量的值(需要重啟 MySQL 服務(wù)才會(huì)生效)。
- 在 MySQL 服務(wù)運(yùn)行期間,使用 SET 命令重新設(shè)置系統(tǒng)變量的值。
服務(wù)器啟動(dòng)時(shí),會(huì)將所有的全局變量賦予默認(rèn)值。這些默認(rèn)值可以在選項(xiàng)文件中或在命令行中對(duì)執(zhí)行的選項(xiàng)進(jìn)行更改。
更改全局變量,必須具有 SUPER 權(quán)限。設(shè)置全局變量的值的方法如下:
- SET @@global.innodb_file_per_table=default;
- SET @@global.innodb_file_per_table=ON;
- SET global innodb_file_per_table=ON;
需要注意的是,更改全局變量只影響更改后連接客戶(hù)端的相應(yīng)會(huì)話變量,而不會(huì)影響目前已經(jīng)連接的客戶(hù)端的會(huì)話變量(即使客戶(hù)端執(zhí)行 SET GLOBAL 語(yǔ)句也不影響)。也就是說(shuō),對(duì)于修改全局變量之前連接的客戶(hù)端只有在客戶(hù)端重新連接后,才會(huì)影響到客戶(hù)端。
客戶(hù)端連接時(shí),當(dāng)前全局變量的值會(huì)對(duì)客戶(hù)端的會(huì)話變量進(jìn)行相應(yīng)初始化。設(shè)置會(huì)話變量不需要特殊權(quán)限,但客戶(hù)端只能更改自己的會(huì)話變量,而不能更改其它客戶(hù)端的會(huì)話變量。設(shè)置會(huì)話變量的值的方法如下:
- SET @@session.pseudo_thread_id=5;
- SET session pseudo_thread_id=5;
- SET @@pseudo_thread_id=5;
- SET pseudo_thread_id = 5;
如果沒(méi)有指定修改全局變量還是會(huì)話變量,服務(wù)器會(huì)當(dāng)作會(huì)話變量來(lái)處理。比如:
SET @@sort_buffer_size = 50000;
上面語(yǔ)句沒(méi)有指定是 GLOBAL 還是 SESSION,服務(wù)器會(huì)當(dāng)做 SESSION 處理。
使用 SET 設(shè)置全局變量或會(huì)話變量成功后,如果 MySQL 服務(wù)重啟,數(shù)據(jù)庫(kù)的配置就又會(huì)重新初始化。一切按照配置文件進(jìn)行初始化,全局變量和會(huì)話變量的配置都會(huì)失效。
MySQL 中還有一些特殊的全局變量,如 log_bin、tmpdir、version、datadir,在 MySQL 服務(wù)實(shí)例運(yùn)行期間它們的值不能動(dòng)態(tài)修改,也就是不能使用 SET 命令進(jìn)行重新設(shè)置,這種變量稱(chēng)為靜態(tài)變量。數(shù)據(jù)庫(kù)管理員可以使用前面提到的修改源代碼或更改配置文件來(lái)重新設(shè)置靜態(tài)變量的值。
名稱(chēng)欄目:MySQL系統(tǒng)變量(查看和修改)
網(wǎng)頁(yè)網(wǎng)址:http://fisionsoft.com.cn/article/dpjdgoh.html


咨詢(xún)
建站咨詢(xún)
