MySQL 8 新特性之持久化全局變量的修改

在8以前的版本中,對於全局變量的修改,其只會影響其內存值,而不會持久化到配置文件中。數據庫重啓,又會恢復成修改前的值。從8開始,可經過SET PERSIST命令將全局變量的修改持久化到配置文件中。mysql

試舉一例sql

mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 151  |
| mysqlx_max_connections | 100  |
+------------------------+-------+
2 rows in set (0.00 sec)

mysql> set persist max_connections=200;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 200  |
| mysqlx_max_connections | 100  |
+------------------------+-------+
2 rows in set (0.00 sec)

 

全局變量的修改會保存在兩處,
1.  數據目錄下mysqld-auto.cnf文件,
     注意,不是啓動時--defaults-file指定的配置文件。
[root@slowtech ~]# cat /var/lib/mysql/mysqld-auto.cnf 
{ "Version" : 1 , "mysql_server" : { "max_connections" : { "Value" : "200" , "Metadata" : { "Timestamp" : 1525509217566258 , "User" : "root" , "Host" : "localhost" } } } }

 

持久化信息以json格式保存,其中,Metadata記錄了此次修改的用戶及時間信息。
 
在數據庫啓動時,會首先讀取其它配置文件,最後纔讀取mysqld-auto.cnf文件。不建議手動修改該文件,其有可能致使數據庫在啓動過程當中因解析錯誤而失敗。若是出現這種狀況,可手動刪除mysqld-auto.cnf文件或將persisted_globals_load變量設置爲off來避免該文件的加載。
 
2. performance_schema.persisted_variables
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME  | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 200            |
+-----------------+----------------+
1 row in set (0.00 sec)

 

全局變量的持久化除了SET PERSIST外,還有SET PERSIST_ONLY,與前者相比,其只持久化全局變量,而不修改其內存值。同時,在權限方面,前者只須要SYSTEM_VARIABLES_ADMIN,後者還須要PERSIST_RO_VARIABLES_ADMIN權限。
 
對於已經持久化了變量,可經過RESET PERSIST命令清除掉,注意,其只是清空mysqld-auto.cnf和performance_schema.persisted_variables中的內容,對於已經修改了的變量的值,不會產生任何影響。
 
除此以外,還能夠經過下述方式將全局變量持久化爲默認值。注意,是默認值,而不是修改前的值。
mysql> set persist max_connections=default;
 
這個命令同「set global max_connections=default」相似,都會將變量的值設置爲默認值,只不過前者還會將默認值持久化到配置文件中。
相關文章
相關標籤/搜索