MySQL8之前的版本,例如5.7,在修改全局變量時候,並不會影響到配置文件,重啓之後就會恢復到默認值。今天看mysql參考手冊時發現了新版本對於修改變量的新方法----set persist,可以使全局系統變量變爲永久性。
https://dev.mysql.com/doc/refman/8.0/en/using-system-variables.html
以修改最大連接數----max_connections爲例。
1.查詢現有的連接數;
2.該參數在5.7版本中使用----set global ;
3.reboot之後就會消失;5.7版本中如果想保持修改,在我的路徑中還需要修改----/usr/lib/systemd/system/mysqld.service 文件。在最後加入參數,然後重啓服務。
LimitNOFILE=65535
LimitNPROC=65535
systemctl daemon-reload //重載所有修改過的配置文件
systemctl restart mysqld
4.使用新方法----set persist;
set persist max_connections = 200;
set global,set persist更改運行時變量值,但也將變量設置寫入mysqld-auto.cnf數據目錄中指定的選項文件 。數據庫啓動時,會首先讀取其它配置文件,最後纔讀取mysqld-auto.cnf文件。所以不建議手動修改該文件,其有可能導致數據庫在啓動過程中因解析錯誤而失敗。如果出現這種情況,可手動刪除mysqld-auto.cnf文件或將persisted_globals_load變量設置爲off來避免該文件的加載。auto文件中的Metadata記錄了這次修改的用戶及時間信息。
對於已經持久化了變量,可通過reset persist命令清除掉,注意,其只是清空mysqld-auto.cnf和performance_schema.persisted_variables中的內容,對於已經修改了的變量的值,不會產生任何影響。