MYSQL 8如何定住你的set variables

发布时间:2021-10-25 10:22:13 作者:柒染
来源:亿速云 阅读:321

MYSQL 8如何定住你的set variables

在MySQL 8中,SET语句用于配置和修改系统变量和用户变量。这些变量可以影响MySQL服务器的行为、查询的执行方式以及客户端与服务器之间的交互。本文将深入探讨如何在MySQL 8中使用SET语句来定住(即设置和持久化)这些变量,并确保它们在服务器重启后仍然有效。

1. 理解MySQL变量

MySQL中的变量分为两大类:

1.1 系统变量

系统变量可以通过SHOW VARIABLES语句查看。例如:

SHOW VARIABLES LIKE 'max_connections';

这将显示max_connections变量的当前值。

1.2 用户变量

用户变量以@符号开头,例如:

SET @my_var = 10;

用户变量仅在当前会话中有效,会话结束后变量将消失。

2. 使用SET语句设置变量

SET语句用于设置系统变量和用户变量。其基本语法如下:

SET variable_name = value;

2.1 设置系统变量

系统变量可以是全局的或会话的。全局变量影响整个服务器,而会话变量仅影响当前会话。

2.1.1 设置全局变量

要设置全局变量,使用GLOBAL关键字:

SET GLOBAL max_connections = 200;

这将把max_connections变量的全局值设置为200。

2.1.2 设置会话变量

要设置会话变量,使用SESSION关键字或省略关键字:

SET SESSION sql_mode = 'STRICT_TRANS_TABLES';

或者:

SET sql_mode = 'STRICT_TRANS_TABLES';

这将把sql_mode变量的会话值设置为STRICT_TRANS_TABLES

2.2 设置用户变量

用户变量的设置非常简单:

SET @my_var = 100;

这将把@my_var变量的值设置为100。

3. 持久化系统变量

在MySQL 8之前,使用SET GLOBAL设置的变量仅在当前会话中有效,服务器重启后这些变量将恢复为默认值。为了持久化这些变量,必须手动编辑配置文件(如my.cnfmy.ini)。

然而,MySQL 8引入了SET PERSISTSET PERSIST_ONLY语句,允许将系统变量的更改持久化到数据目录中的mysqld-auto.cnf文件中。这样,即使服务器重启,这些变量仍然保持设置。

3.1 使用SET PERSIST

SET PERSIST语句不仅会立即更改系统变量的值,还会将更改持久化到mysqld-auto.cnf文件中。例如:

SET PERSIST max_connections = 200;

这将把max_connections变量的全局值设置为200,并将此更改持久化。

3.2 使用SET PERSIST_ONLY

SET PERSIST_ONLY语句仅将系统变量的更改持久化到mysqld-auto.cnf文件中,而不会立即更改变量的值。这在某些情况下非常有用,例如在服务器重启后才应用更改。

SET PERSIST_ONLY max_connections = 200;

这将把max_connections变量的更改持久化,但不会立即更改其值。

3.3 查看持久化的变量

可以使用performance_schema数据库中的persisted_variables表来查看已持久化的变量:

SELECT * FROM performance_schema.persisted_variables;

这将显示所有已持久化的系统变量及其值。

3.4 删除持久化的变量

要删除持久化的变量,可以使用RESET PERSIST语句:

RESET PERSIST max_connections;

这将从mysqld-auto.cnf文件中删除max_connections变量的持久化设置。

4. 注意事项

5. 总结

在MySQL 8中,SET语句是配置和修改系统变量和用户变量的强大工具。通过使用SET PERSISTSET PERSIST_ONLY,你可以确保系统变量的更改在服务器重启后仍然有效。这不仅简化了配置管理,还提高了系统的可靠性和一致性。

通过本文的介绍,你应该能够熟练地在MySQL 8中使用SET语句来定住你的变量,并确保它们在服务器重启后仍然保持设置。无论是全局变量、会话变量还是用户变量,SET语句都能帮助你轻松管理和配置MySQL服务器。

推荐阅读:
  1. mysql数据库编码
  2. 【Mysql】修改mysql时区

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:Linux终端中如何使用lolcat命令

下一篇:Python爬虫经常会被封的原因是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》