比方說在一些實際生產環境中,想改個MYSQL的配置,可是又不想中止服務重起MYSQL,有什麼辦法呢?使用SET命令能夠作到,請看下面幾個例子:html
1.設置key_buffer_size的大小爲10M。mysql
SET GLOBAL key_buffer_size = 10485760;
或sql
SET @@global.key_buffer_size = 10485760;
2.設置最大鏈接數爲200數據庫
SET GLOBAL max_connections=200;
或服務器
SET @@global.max_connections=200;
3.更改慢查詢SQL日誌時間session
SET @@long_query_time=3;
要查看有哪些變量,可執行SHOW VARIABLES;得到。spa
參考手冊:日誌
SET variable_assignment [, variable_assignment] ...
variable_assignment:
user_var_name = expr
| [GLOBAL | SESSION] system_var_name = expr
| @@[global. | session.]system_var_name = expr
SET用於設置不一樣類型的變量。這些變量會影響服務器或客戶端的操做。SET能夠用於向用戶變量或系統變量賦值。htm
用於分配帳戶密碼的SET PASSWORD語句在13.5.1.5節,「SET PASSWORD語法」中進行了討論。
多數系統變量能夠在運行時間被更改。能夠被動態設置的系統變量在5.3.3.1節,「動態系統變量」中進行了討論。
註釋:舊版本的MySQL採用SET OPTION做爲這個命令,可是因爲有了SET,如今不同意使用SET OPTION。
如下例子顯示了您能夠用於設置變量的不一樣語法。
用戶變量能夠被寫做@var_name,並能夠進行以下設置:
SET @var_name = expr;
在9.3節,「用戶變量」中給出了有關用戶變量的更多信息。
系統變量能夠被做爲var_name引用到SET語句中。在名稱的前面能夠自選地添加GLOBAL或@@global,以明確地指示該變量是全局變量。或者在名稱前面添加SESSION, @@session,或@@,以指示它是一個會話變量。LOCAL和@@local是SESSION和@@session地同義詞。若是沒有修改符,則SET設置會話變量。
支持系統變量的@@var_name語法,以便使MySQL語法與其它數據庫系統相兼容。