Change MySQL system variables at runtime

部分 MySQL 參數可以在 console 裡動態調整。MySQL 的參數有分成 global 和 session,global 是對整個資料庫都有效,而 session 只會影響到當前的 session。

這裡有列出哪些參數可以動態調整哪些不行:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html

# 可以先用 SHOW VARIABLES 查看參數的當前值
# 會優先顯示 session 的參數,沒有的話會顯示 global 的
SHOW VARIABLES LIKE '%timeout';
SHOW VARIABLES LIKE 'tx_isolation';

# 你也可以顯式地指定
SHOW GLOBAL VARIABLES LIKE '%timeout';
SHOW GLOBAL VARIABLES LIKE 'tx_isolation';

# 動態設置參數
SET GLOBAL max_allowed_packet = 1073741824;
SET GLOBAL innodb_flush_log_at_trx_commit = 2;
SET GLOBAL tx_isolation = 'READ-COMMITTED';
SET GLOBAL query_cache_type = 0;
SET GLOBAL query_cache_size = 0;

ref:
http://blog.csdn.net/dbanote/article/details/12949423
http://dba.stackexchange.com/questions/29963/dynamic-change-to-innodb-flush-log-at-trx-commit