日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL系統(tǒng)變量(查看和修改)

在 MySQL 數(shù)據(jù)庫,變量分為系統(tǒng)變量和用戶自定義變量。系統(tǒng)變量以 @@ 開頭,用戶自定義變量以 @ 開頭。

服務器維護著兩種系統(tǒng)變量,即
全局變量(
GLOBAL VARIABLES
)和
會話變量(
SESSION VARIABLES
)。全局變量影響 MySQL 服務的整體運行方式,會話變量影響具體客戶端連接的操作。

每一個客戶端成功連接服務器后,都會產(chǎn)生與之對應的會話。會話期間,MySQL 服務實例會在服務器內(nèi)存中生成與該會話對應的會話變量,這些會話變量的初始值是全局變量值的拷貝。

查看系統(tǒng)變量

可以使用以下命令查看 MySQL 中所有的全局變量信息。

SHOW GLOBAL VARIABLES; 

可以使用以下命令查看與當前會話相關(guān)的所有會話變量以及全局變量。

SHOW SESSION VARIABLES;

其中,SESSION 關(guān)鍵字可以省略。

MySQL 中的系統(tǒng)變量以兩個“@”開頭。

  • @@global 僅僅用于標記全局變量;
  • @@session 僅僅用于標記會話變量;
  • @@ 首先標記會話變量,如果會話變量不存在,則標記全局變量。

MySQL 中有一些系統(tǒng)變量僅僅是全局變量,例如 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)變量僅僅是會話變量,例如 MySQL 連接 ID 會話變量 pseudo_thread_id,可以使用以下 2 種方法查看。

SHOW SESSION VARIABLES LIKE 'pseudo_thread_id';
SHOW VARIABLES LIKE 'pseudo_thread_id';

MySQL 中有一些系統(tǒng)變量既是全局變量,又是會話變量,例如系統(tǒng)變量 character_set_client 既是全局變量,又是會話變量。

SHOW SESSION VARIABLES LIKE 'character_set_client';
SHOW VARIABLES LIKE 'character_set_client';

此時查看全局變量的方法如下:

SHOW GLOBAL VARIABLES LIKE 'character_set_client';

設置系統(tǒng)變量

可以通過以下方法設置系統(tǒng)變量:

  1. 修改 MySQL 源代碼,然后對 MySQL 源代碼重新編譯(該方法適用于 MySQL 高級用戶,這里不做闡述)。
  2. 在 MySQL 配置文件(mysql.ini 或 mysql.cnf)中修改 MySQL 系統(tǒng)變量的值(需要重啟 MySQL 服務才會生效)。
  3. 在 MySQL 服務運行期間,使用 SET 命令重新設置系統(tǒng)變量的值。

服務器啟動時,會將所有的全局變量賦予默認值。這些默認值可以在選項文件中或在命令行中對執(zhí)行的選項進行更改。

更改全局變量,必須具有 SUPER 權(quán)限。設置全局變量的值的方法如下:

  • SET @@global.innodb_file_per_table=default;
  • SET @@global.innodb_file_per_table=ON;
  • SET global innodb_file_per_table=ON;

需要注意的是,更改全局變量只影響更改后連接客戶端的相應會話變量,而不會影響目前已經(jīng)連接的客戶端的會話變量(即使客戶端執(zhí)行 SET GLOBAL 語句也不影響)。也就是說,對于修改全局變量之前連接的客戶端只有在客戶端重新連接后,才會影響到客戶端。

客戶端連接時,當前全局變量的值會對客戶端的會話變量進行相應初始化。設置會話變量不需要特殊權(quán)限,但客戶端只能更改自己的會話變量,而不能更改其它客戶端的會話變量。設置會話變量的值的方法如下:

  • SET @@session.pseudo_thread_id=5;
  • SET session pseudo_thread_id=5;
  • SET @@pseudo_thread_id=5;
  • SET pseudo_thread_id = 5;

如果沒有指定修改全局變量還是會話變量,服務器會當作會話變量來處理。比如:

SET @@sort_buffer_size = 50000;

上面語句沒有指定是 GLOBAL 還是 SESSION,服務器會當做 SESSION 處理。

使用 SET 設置全局變量或會話變量成功后,如果 MySQL 服務重啟,數(shù)據(jù)庫的配置就又會重新初始化。一切按照配置文件進行初始化,全局變量和會話變量的配置都會失效。

MySQL 中還有一些特殊的全局變量,如 log_bin、tmpdir、version、datadir,在 MySQL 服務實例運行期間它們的值不能動態(tài)修改,也就是不能使用 SET 命令進行重新設置,這種變量稱為靜態(tài)變量。數(shù)據(jù)庫管理員可以使用前面提到的修改源代碼或更改配置文件來重新設置靜態(tài)變量的值。


網(wǎng)頁題目:創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL系統(tǒng)變量(查看和修改)
標題鏈接:http://www.5511xx.com/article/cdhdehj.html