溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL入門--設置session,global變量的方法

發(fā)布時間:2020-08-11 12:51:06 來源:ITPUB博客 閱讀:378 作者:panpong 欄目:MySQL數(shù)據(jù)庫

mysql 設置session,global變量的方法

-- 設置或修改系統(tǒng)日志有效期

SET GLOBAL expire_logs_days=8;

SHOW VARIABLES LIKE '%expire_logs_days%';

 

-- 設置或修改系統(tǒng)最大連接數(shù)

SET GLOBAL max_connections = 2648;

SHOW VARIABLES LIKE '%max_connections%';

 

-- 修改MYSQL自動編號步長

SHOW VARIABLES LIKE '%auto_increment%';

SET GLOBAL auto_increment_offset = 1;

SET GLOBAL auto_increment_increment = 1;

 

比如設置MySQL實例參數(shù)wait_timeout10.

 

1) 設置全局變量方法1(不推薦): 修改參數(shù)文件, 然后重啟mysqld

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

# service mysqld restart

不過這個方法太生硬了, 線上服務重啟無論如何都應該盡可能避免.

 

2) 設置全局變量方法2(推薦): 在命令行里通過SET來設置, 然后再修改參數(shù)文件

如果要修改全局變量, 必須要顯示指定"GLOBAL"或者"@@global.", 同時必須要有SUPER權限.

mysql> set global wait_timeout=10;

or

mysql> set @@global.wait_timeout=10;

 

然后查看設置是否成功:

mysql> select @@global.wait_timeout=10;

or

mysql> show global variables like 'wait_timeout';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| wait_timeout  | 10    |

+---------------+-------+

如果查詢時使用的是show variables的話, 會發(fā)現(xiàn)設置并沒有生效, 除非重新登錄再查看. 這是因為使用show variables的話就等同于使用show session variables, 查詢的是會話變量, 只有使用show global variables查詢的才是全局變量. 如果僅僅想修改會話變量的話, 可以使用類似set wait_timeout=10;或者set session wait_timeout=10;這樣的語法.

當前只修改了正在運行的MySQL實例參數(shù), 但下次重啟mysqld又會回到默認值, 所以別忘了修改參數(shù)文件:

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

 

3) 設置會話變量方法: 在命令行里通過SET來設置

如果要修改會話變量值, 可以指定"SESSION"或者"@@session."或者"@@"或者"LOCAL"或者"@@local.", 或者什么都不使用.

mysql> set wait_timeout=10;

or

mysql> set session wait_timeout=10;

or

mysql> set local wait_timeout=10;

or

mysql> set @@wait_timeout=10;

or

mysql> set @@session.wait_timeout=10;

or

mysql> set @@local.wait_timeout=10;

 

然后查看設置是否成功:

mysql> select @@wait_timeout;

or

mysql> select @@session.wait_timeout;

or

mysql> select @@local.wait_timeout;

or

mysql> show variables like 'wait_timeout';

or

mysql> show local variables like 'wait_timeout';

or

mysql> show session variables like 'wait_timeout';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| wait_timeout  | 10    |

+---------------+-------+

 

4) 會話變量和全局變量轉(zhuǎn)換方法: 在命令行里通過SET來設置

將會話變量值設置為對應的全局變量值呢:

mysql> set @@session.wait_timeout=@@global.wait_timeout;

將會話變量值設置為MySQL編譯時的默認值(wait_timeout=28800):

mysql> set wait_timeout=DEFAULT;

這里要注意的是, 并不是所有的系統(tǒng)變量都能被設置為DEFAULT, 如果設置這些變量為DEFAULT則會返回錯誤.

--end—

 

參考文獻:

1MySQLGlobal、SessionBoth(Global & Session)范圍的DynamicNot Dynamic類型的變量的作用范圍和設置方法,http://blog.csdn.net/zyz511919766/article/details/13294479

2MySQL 里設置或修改系統(tǒng)變量的幾種方法,

http://wenku.baidu.com/link?url=wvLTvtJv-B-YHLfaaCYANwq0ieBf5TDonJtXx-2cJgXI0jIhr3n_1yn4c60TnbiEBiE7F9ttv6VxpWRRwFbhY7xX3aoV75VWaw2htrCqh7m

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI