共計(jì) 5230 個(gè)字符,預(yù)計(jì)需要花費(fèi) 14 分鐘才能閱讀完成。
這篇文章主要講解了“mysql 關(guān)于 variable 知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著丸趣 TV 小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“mysql 關(guān)于 variable 知識(shí)點(diǎn)有哪些”吧!
1、MySQL 的 my.cnf 文件類似 Oracle 的參數(shù)文件,可以把它理解成 oracle 的 pfile 靜態(tài)參數(shù)文件
2、MySQL 可以使用 set 命令動(dòng)態(tài)的修改變量,修改 session 變量只對(duì)當(dāng)前會(huì)話產(chǎn)生影響;修改 global 變量,對(duì)所有新會(huì)話的 global 變量、session 變量 (特殊情況除外,比如 wait_timeout 變量) 產(chǎn)生影響
3、set 命令修改的變量不會(huì)寫入 my.cnf 文件,DB 重啟的話之前 set 修改的變量就失效了,想要永久生效,就把變量寫入到 my.cnf 文件
4、只讀變量,不能使用 set 修改,只能通過(guò)修改 my.cnf 文件再重啟生效
5、全局(GLOBAL)級(jí)變量對(duì)整個(gè) MySQL 服務(wù)器有效;會(huì)話(SESSION)級(jí)變量只影響當(dāng)前會(huì)話。有些變量同時(shí)擁有這兩個(gè)級(jí)別,MySQL 將在建立連接時(shí)用全局級(jí)變量初始化會(huì)話級(jí)變量,但一旦連接建立之后,全局級(jí)變量的改變不會(huì)影響到會(huì)話級(jí)變量
6、可以把全局(GLOBAL)級(jí)變量理解成 oracle 的 system 參數(shù),會(huì)話(SESSION)級(jí)變量理解成 oracle 的 session 參數(shù)
7、mysql 沒(méi)有類似 oracle 的 create pfile from memory 保存所有內(nèi)存的中參數(shù)值的功能,mysql 如果要保存所有修改的參數(shù)但是沒(méi)有寫入 my.cnf 的方法,就是 select * from INFORMATION_SCHEMA.GLOBAL_VARIABLES 查詢出來(lái)并保存
查看系統(tǒng)變量的值
方法 1
mysql show variables like %wait_timeout%
mysql show global variables like %wait_timeout%
mysql show session variables like %wait_timeout%
注意:show variables 優(yōu)先顯示會(huì)話級(jí)變量的值,如果這個(gè)值不存在,則顯示全局級(jí)變量的值,當(dāng)然你也可以加上 SESSION 關(guān)鍵字區(qū)別
方法 2
mysql set global show_compatibility_56=on;
mysql select * from INFORMATION_SCHEMA.GLOBAL_VARIABLES where variable_name like %wait_timeout%
mysql select * from INFORMATION_SCHEMA.SESSION_VARIABLES where variable_name like %wait_timeout%
修改系統(tǒng)變量的值
mysql set wait_timeout = xxx;
mysql set global wait_timeout = yyy;
只讀系統(tǒng)標(biāo)量,不能使用 set 修改
mysql show variables like log_bin
+—————+——-+
| Variable_name | Value |
+—————+——-+
| log_bin | ON |
+—————+——-+
1 row in set (0.00 sec)
mysql set log_bin=off;
ERROR 1238 (HY000): Variable log_bin is a read only variable
只有全局變量,沒(méi)有會(huì)話變量
全局變量修改的時(shí)候,其他新開(kāi)會(huì)話的會(huì)話變量和全局變量都是修改后的值
會(huì)話 1
mysql show variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 1 |
+—————+——-+
mysql set server_id=2;
ERROR 1229 (HY000): Variable server_id is a GLOBAL variable and should be set with SET GLOBAL
mysql set GLOBAL server_id=2;
mysql show variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 2 |
+—————+——-+
mysql show global variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 2 |
+—————+——-+
打開(kāi)另一個(gè)會(huì)話
全局變量修改的時(shí)候,其他新開(kāi)會(huì)話的會(huì)話變量和全局變量都是修改后的值
mysql show variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 2 |
+—————+——-+
mysql show global variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 2 |
+—————+——-+
有全局變量,也有會(huì)話變量
會(huì)話變量修改的時(shí)候,不影響本身的全局變量,也不影響其他新開(kāi)會(huì)話的會(huì)話變量和全局變量
全局變量修改的時(shí)候,其他新開(kāi)會(huì)話的會(huì)話變量和全局變量都是修改后的值
會(huì)話 1
mysql show variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
mysql show global variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
mysql set read_buffer_size=212992;
mysql show variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 212992 |
+——————+——–+
mysql show global variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
打開(kāi)另一個(gè)會(huì)話 2
會(huì)話變量修改的時(shí)候,不影響本身的全局變量,也不影響其他新開(kāi)會(huì)話的會(huì)話變量和全局變量
mysql show variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
mysql show global variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
會(huì)話 1 繼續(xù)如下
mysql set global read_buffer_size=16384;
mysql show variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 212992 |
+——————+——–+
mysql show global variables like read_buffer_size
+——————+——-+
| Variable_name | Value |
+——————+——-+
| read_buffer_size | 16384 |
+——————+——-+
打開(kāi)另一個(gè)會(huì)話 3
全局變量修改的時(shí)候,其他新開(kāi)會(huì)話的會(huì)話變量和全局變量都是修改后的值
mysql show variables like read_buffer_size
+——————+——-+
| Variable_name | Value |
+——————+——-+
| read_buffer_size | 16384 |
+——————+——-+
mysql show global variables like read_buffer_size
+——————+——-+
| Variable_name | Value |
+——————+——-+
| read_buffer_size | 16384 |
+——————+——-+
重啟之后
重啟之后,所有的 set 修改的變量值都不在了,回到了初始值
mysql show variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 1 |
+—————+——-+
mysql show global variables like server_id
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 1 |
+—————+——-+
mysql show variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
mysql show global variables like read_buffer_size
+——————+——–+
| Variable_name | Value |
+——————+——–+
| read_buffer_size | 131072 |
+——————+——–+
感謝各位的閱讀,以上就是“mysql 關(guān)于 variable 知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì) mysql 關(guān)于 variable 知識(shí)點(diǎn)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!