【MySQL】MySQL8.x的配置设置的持久化

关于MySQL8.x的新特性,我关注到了一个关于配置设置的持久化

 

【MySQL】MySQL8.x的配置设置的持久化

 

# systemctl status mysqld

【MySQL】MySQL8.x的配置设置的持久化

 

# cat /etc/systemd/system/mysqld.service

 

【MySQL】MySQL8.x的配置设置的持久化

 

# docker exec -it mysql mysql -V

mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

 

# docker exec -it mysql mysql -u root -p"[email protected]"

# docker exec -it mysql mysql -u root -p"[email protected]" -e "show variables like '%max_connections%';"

# docker exec -it mysql mysql -u root -p"[email protected]" -e "SET PERSIST max_connections = 500;"

# docker exec -it mysql mysql -u root -p"[email protected]" -e "show variables like '%max_connections%';"

 

【MySQL】MySQL8.x的配置设置的持久化

可以看到,在数据目录下新生成了一个文件 mysqld-auto.cnf

# cat /opt/mysqldata/mysqld-auto.cnf

# cat /opt/mysqldata/mysqld-auto.cnf | python -m json.tool

 

【MySQL】MySQL8.x的配置设置的持久化

 

 

# rm  -f /opt/mysqldata/mysqld-auto.cnf

# systemctl restart mysqld

# docker exec -it mysql mysql -u root -p"[email protected]" -e "show variables like '%max_connections%';"

【MySQL】MySQL8.x的配置设置的持久化

 

从上可以看出, MySQL 8.0 新增的 SET PERSIST 命令,可以使得参数配置更灵活,而且以json格式的文件形式存储在数据目录中,配置的优先级高于其他的配置文件。