MySql--系统变量
摘要
-
MySql知识点介绍:系统变量
-
本文基于
mysql-8.0.30,https://dev.mysql.com/doc/refman/8.0/en/
系统变量
可以设置在配置文件中,也可以通过set命令进行设置
mysql配置文件中大部分变量都可以通过set命令设置,注意重启mysql后会失效,要及时更新配置文件
-
设置变量示例
1 | # 查看全部全局变量 |
在线修改全局参数持久化
-
MySQL 8.0 版本支持在线修改全局参数持久化,通过加上
PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启 db 还可以应用到最新的参数。
1 | mysql> set persist max_connections=300; |
-
这种方式并不会修改mysql的配置文件,而是在
datadir路径下创建一个mysqld-auto.cnf文件,在数据库启动时,会首先读取主配置文件(my.cnf),然后接着读取mysqld-auto.cnf文件。不要手工修改这个文件。
1 | more mysqld-auto.cnf |
-
可手动删除
mysqld-auto.cnf文件或将persisted_globals_load变量设置为off来避免该文件的加载。
1 | mysql> show variables like 'persisted_globals_load'; |
-
持久化为默认值: 全局变量持久化为默认值。注意,是
默认值,而不是修改前的值
1 | mysql> set persist max_connections=default; |
-
清空持久化变量: 只会清空
mysqld-auto.cnf中的配置,不会改变已经持久化的变量值
1 | mysql> reset persist; |
1 | more mysqld-auto.cnf |
-
修改只读变量,对于
read only的参数,修改参数后需要重启才能生效
1 | mysql> set persist innodb_log_file_size=2073741824; |
1 | more mysqld-auto.cnf |