MySQL 8 新特性之持久化全域性變數的修改

2022-01-19 14:05:19 字數 2326 閱讀 2774

在8之前的版本中,對於全域性變數的修改,其只會影響其記憶體值,而不會持久化到配置檔案中。資料庫重啟,又會恢復成修改前的值。從8開始,可通過set persist命令將全域性變數的修改持久化到配置檔案中。

試舉一例

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

} } }

持久化資訊以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」類似,都會將變數的值設定為預設值,只不過前者還會將預設值持久化到配置檔案中。

MySQL 8 新特性之自增主鍵的持久化

mysql create table t1 id int auto increment primary key query ok,0 rows affected 0.01 sec mysql insert into t1 values null null null query ok,3 rows a...

MySQL 8 新特性介紹

原文 what s new in mysql 8.0mysql是眾多 技術棧中的標準配置,是廣受歡迎的開源資料庫,已經推出了8.0的第乙個候選發行版本。mysql 8.0的新特性包括 根據mysql的策略 乙個新的 一般 版本發布的週期是18 24個月 mysql並沒有承諾mysql 8.0的發布日...

MySQL 8的關鍵新特性

mysql的第八個版本蓄勢待發,並有望於2018年發布。在mysql 5.7.9的首個通用版本推出後的28個月內,mysql 8發布了從8.0.0到8.0.4這五個候選版本。這些發布候選僅針對開發使用,而不應該生產系統中使用。因為這些候選版並不支援版本公升級,使用者可能會碰上候選版與一般可用 ga ...