关于MySQL8.x的新特性,我关注到了一个关于配置设置的持久化
# systemctl status mysqld
# cat /etc/systemd/system/mysqld.service
# 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"MySQL@123"
# docker exec -it mysql mysql -u root -p"MySQL@123" -e "show variables like '%max_connections%';"
# docker exec -it mysql mysql -u root -p"MySQL@123" -e "SET PERSIST max_connections = 500;"
# docker exec -it mysql mysql -u root -p"MySQL@123" -e "show variables like '%max_connections%';"
可以看到,在数据目录下新生成了一个文件 mysqld-auto.cnf
# cat /opt/mysqldata/mysqld-auto.cnf
# cat /opt/mysqldata/mysqld-auto.cnf | python -m json.tool
# rm -f /opt/mysqldata/mysqld-auto.cnf
# systemctl restart mysqld
# docker exec -it mysql mysql -u root -p"MySQL@123" -e "show variables like '%max_connections%';"
从上可以看出, MySQL 8.0 新增的 SET PERSIST 命令,可以使得参数配置更灵活,而且以json格式的文件形式存储在数据目录中,配置的优先级高于其他的配置文件。