首页 > 编程笔记 > MySQL笔记 阅读:21

MySQL SET PERSIST命令的用法(附带实例)

MySQL 数据库中,全局变量可以通过 SET GLOBAL 语句来设置。

例如,设置服务器语句超时的限制,可以通过设置系统变量 max_execution_time 来实现:
SET GLOBAL max_execution_time=2000;
使用 SET GLOBAL 语句设置的变量值只会临时生效。数据库重启后,服务器又会从 MySQL 配置文件中读取变量的默认值。

MySQL 9.0 版本中的 SET PERSIST 命令,用于设置或更新当前会话的持久化设置。持久化设置决定了一个会话在事务结束之前是否需要将所有更改保存到磁盘。

例如,设置服务器的最大连接数为 1000:
SET PERSIST max_connections = 1000;
MySQL 会将该命令的配置保存到数据目录下的 mysqld-auto.cnf 文件中,下次启动时会读取该文件,用其中的配置来覆盖默认的配置文件。

下面通过一个案例来理解全部变量的持久化:
1) 首先查看全局变量 max_connections 的值,结果如下:
mysql> SHOW VARIABLES LIKE '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 151   |
| mysqlx_max_connections | 100   |
+------------------------+-------+

2) 然后设置全局变量 max_connections 的值:
mysql> SET PERSIST max_connections=1000;

3) 最后重启 MySQL 服务器,再次查询 max_connections 的值:
mysql> SHOW VARIABLES LIKE '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 1000  |
| mysqlx_max_connections | 100   |
+------------------------+-------+
由结果可知,使用 SET PERSIST 命令设置的服务器被连接次数 1000 持久化了,覆盖了原来的 151。

相关文章