mysql關於variable的總結
總結
1、MySQL的my.cnf檔案類似Oracle的引數檔案,可以把它理解成oracle的pfile靜態引數檔案
2、MySQL可以使用set命令動態的修改變數,修改session變數只對當前會話產生影響;修改global變數,對所有新會話的global變數、session變數(特殊情況除外,比如wait_timeout變數)產生影響
3、set命令修改的變數不會寫入my.cnf檔案,DB重啟的話之前set修改的變數就失效了,想要永久生效,就把變數寫入到my.cnf檔案
4、只讀變數,不能使用set修改,只能透過修改my.cnf檔案再重啟生效
5、全域性(GLOBAL)級變數對整個MySQL伺服器有效;會話(SESSION)級變數隻影響當前會話。有些變數同時擁有這兩個級別,MySQL將在建立連線時用全域性級變數初始化會話級變數,但一旦連線建立之後,全域性級變數的改變不會影響到會話級變數
6、可以把全域性(GLOBAL)級變數理解成oracle的system引數,會話(SESSION)級變數理解成oracle的session引數
7、mysql沒有類似oracle的create pfile from memory儲存所有記憶體的中引數值的功能,mysql如果要儲存所有修改的引數但是沒有寫入my.cnf的方法,就是select * from INFORMATION_SCHEMA.GLOBAL_VARIABLES查詢出來並儲存
檢視系統變數的值
方法1
mysql> show variables like '%wait_timeout%';
mysql> show global variables like '%wait_timeout%';
mysql> show session variables like '%wait_timeout%';
注意:show variables優先顯示會話級變數的值,如果這個值不存在,則顯示全域性級變數的值,當然你也可以加上SESSION關鍵字區別
方法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%'
修改系統變數的值
mysql> set wait_timeout = xxx;
mysql> set global wait_timeout = yyy;
只讀系統標量,不能使用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
只有全域性變數,沒有會話變數
全域性變數修改的時候,其他新開會話的會話變數和全域性變數都是修改後的值
會話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 |
+---------------+-------+
開啟另一個會話
全域性變數修改的時候,其他新開會話的會話變數和全域性變數都是修改後的值
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 |
+---------------+-------+
有全域性變數,也有會話變數
會話變數修改的時候,不影響本身的全域性變數,也不影響其他新開會話的會話變數和全域性變數
全域性變數修改的時候,其他新開會話的會話變數和全域性變數都是修改後的值
會話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 |
+------------------+--------+
開啟另一個會話2
會話變數修改的時候,不影響本身的全域性變數,也不影響其他新開會話的會話變數和全域性變數
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 |
+------------------+--------+
會話1繼續如下
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 |
+------------------+-------+
開啟另一個會話3
全域性變數修改的時候,其他新開會話的會話變數和全域性變數都是修改後的值
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 |
+------------------+--------+
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2215282/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql關於mysql.server的總結MySqlServer
- mysql關於臨時表的總結MySql
- mysql關於mysqld_safe的總結MySql
- mysql關於表空間的總結MySql
- mysql關於memory引擎的表的總結MySql
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- mysql關於聚集索引、非聚集索引的總結MySql索引
- mysql關於db.opt檔案的總結MySql
- mysql關於字符集character set的總結MySql
- 關於MySQL 查詢表資料大小的總結MySql
- 關於近期的總結
- 關於UIWebView的總結UIWebView
- 關於BeautifulSoup的總結
- 關於HTML的總結HTML
- sqlserver關於always on的總結SQLServer
- ORACLE關於NULL的總結OracleNull
- 關於ORACLE鎖的總結Oracle
- 關於jboss配置的總結
- sqlserver關於mirror映象的總結SQLServer
- sqlserver 關於DBCC CHECKDB的總結SQLServer
- 關於golang的time包總結Golang
- 關於 iOS 批量打包的總結iOS
- 關於Teradata PI的總結
- 關於控制檔案的總結
- 關於SCN的總結測試
- 關於oracle裡的process總結Oracle
- 關於ORACLE的一點總結Oracle
- 關於QT的系統總結QT
- 關於oracle synonym 的總結整理Oracle
- 關於Servlet小總結Servlet
- 關於Hint再總結
- mysql關於二進位制日誌binary log的總結MySql
- 關於MySQL InnoDB表的二級索引是否加入主鍵的總結MySql索引
- mysql相關問題總結MySql
- MySql相關語句總結MySql
- sqlserver always on關於備份的總結SQLServer
- 關於Map集合的遍歷總結