溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在MySQL8中修改持久化全局變量

發(fā)布時間:2021-05-20 16:14:07 來源:億速云 閱讀:168 作者:Leah 欄目:MySQL數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)如何在MySQL8中修改持久化全局變量,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

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

全局變量的修改會保存在兩處,

1.  數(shù)據(jù)目錄下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記錄了這次修改的用戶及時間信息。

在數(shù)據(jù)庫啟動時,會首先讀取其它配置文件,最后才讀取mysqld-auto.cnf文件。不建議手動修改該文件,其有可能導(dǎo)致數(shù)據(jù)庫在啟動過程中因解析錯誤而失敗。如果出現(xiàn)這種情況,可手動刪除mysqld-auto.cnf文件或?qū)ersisted_globals_load變量設(shè)置為off來避免該文件的加載。

2. performance_schema.persisted_variables

mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 200 |
+-----------------+----------------+
row in set (0.00 sec)

全局變量的持久化除了SET PERSIST外,還有SET PERSIST_ONLY,與前者相比,其只持久化全局變量,而不修改其內(nèi)存值。同時,在權(quán)限方面,前者只需要SYSTEM_VARIABLES_ADMIN,后者還需要PERSIST_RO_VARIABLES_ADMIN權(quán)限。

對于已經(jīng)持久化了變量,可通過RESET PERSIST命令清除掉,注意,其只是清空mysqld-auto.cnf和performance_schema.persisted_variables中的內(nèi)容,對于已經(jīng)修改了的變量的值,不會產(chǎn)生任何影響。

除此之外,還可以通過下述方式將全局變量持久化為默認(rèn)值。注意,是默認(rèn)值,而不是修改前的值。

mysql> set persist max_connections=default;

關(guān)于如何在MySQL8中修改持久化全局變量就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI