首页 首页 公司资讯 网投下注官网

让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

网投下注官网

你的位置:网投下注 > 网投下注官网 > MySQL 8 新特点:全局参数耐久化!

MySQL 8 新特点:全局参数耐久化!

发布日期:2022-03-13 19:33    点击次数:194

本文转载自微信公众号「Lucifer沉思熟虑」,作家Lucifer。转载本文请联系Lucifer沉思熟虑公众号。

弁言

自从 2018 年发布初版 MySQL 8.0.11 郑再版于今,MySQL 版块也曾更新迭代到 8.0.26,相关于矫捷的 5.7 版蓝本说,8.0 在性能上的进步是不消置疑的!

跟着越来越多的企业出手使用 MySQL 8.0 版块,关于 DBA 来说是一个挑战,亦然一个机遇!????

本文主要筹议下 MySQL 8.0 版块的新特点:全局参数耐久化

 全局参数耐久化

MySQL 8.0 版块解救在线修改全局参数并耐久化,通过加上 PERSIST 要津字,不错将修改的参数耐久化到新的设立文献(mysqld-auto.cnf)中,重启 MySQL 时,不错从该设立文献得到到最新的设立参数!

[WL#8688]:https://dev.mysql.com/worklog/task/?id=8688

启用这个功能,使用特定的语法 SET PERSIST 来设定放纵可动态修改的全局变量!

SET PERSIST语句不错修改内存中变量的值,况且将修改后的值写?数据?录中的 mysqld-auto.cnf 中。 SET PERSIST_ONLY语句不会修改内存中变量的值,仅仅将修改后的值写?数据?录中的 mysqld-auto.cnf 中。

以 max_connections 参数为例:

mysql> select * from performance_schema.persisted_variables; Empty set (0.00 sec)  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=300; Query OK, 0 rows affected (0.00 sec)  mysql> select * from performance_schema.persisted_variables; +-----------------+----------------+ | VARIABLE_NAME   | VARIABLE_VALUE | +-----------------+----------------+ | max_connections | 300            | +-----------------+----------------+ 1 row in set (0.00 sec) 

系统会在数据目次下生成一个包含 json 法子的 mysqld-auto.cnf 的文献,法子化后如下所示,当 my.cnf 和mysqld-auto.cnf 同期存在时,后者具有更高优先级。

{     "Version": 1,      "mysql_server": {         "max_connections": {             "Value": "300",              "Metadata": {                 "Timestamp": 1632575065787609,                  "User": "root",                  "Host": "localhost"             }         }     } } 

 正经: 即使你通过 SET PERSIST 修改设立的值并莫得任何变化,也会写入到 mysqld-auto.cnf 文献中。但你不错通过缔造成 DEFAULT 值的形状来复原运行默许值!

要是想要复原 max_connections 参数为运行默许值,只需要施行:

mysql> set persist max_connections=DEFAULT; Query OK, 0 rows affected (0.00 sec)  mysql> select * from performance_schema.persisted_variables; +-----------------+----------------+ | VARIABLE_NAME   | VARIABLE_VALUE | +-----------------+----------------+ | max_connections | 151            | +-----------------+----------------+ 1 row in set (0.00 sec) 

要是想要移除总共的全局耐久化参数,则只需施行:

mysql> RESET PERSIST; Query OK, 0 rows affected (0.00 sec)  mysql> select * from performance_schema.persisted_variables; Empty set (0.00 sec) 

 

诚然,删除 mysqld-auto.cnf 文献后,重启 MySQL 也可!