4.2.2.5 使用选项来设置程序变量

许多 MySQL 程序都有内部变量,可以在运行时使用SET语句进行设置。参见 第 13.7.6.1 节 “变量赋值的 SET 语法”第 5.1.9 节 “使用系统变量”

这些程序变量中的大多数也可以在服务器启动时使用与指定程序选项相同的语法进行设置。例如,mysql 有一个max_allowed_packet变量,用于控制其通信缓冲区的最大大小。要将 mysqlmax_allowed_packet变量设置为 16MB ,请使用以下任一命令:

mysql --max_allowed_packet=16777216
mysql --max_allowed_packet=16M

第一个命令以字节为单位指定值。第二个值以兆字节为单位指定值。对于采用数值的变量,该值可以用K、M或G作为后缀,以表示 1024 、1024^2 或 1024^3 的乘数。(例如,当用于设置max_allowed_packet时,后缀表示单位为 K 字节、M 字节或 G 字节。)从 MySQL 8.0.14 开始,后缀也可以是 T、P 和 E ,表示乘数为 1024^4 、1024^5 或 1024^6 。后缀字母可以是大写或小写。

在选项文件中,变量设置可以不带前导短划线:

[mysql]
max_allowed_packet=16777216

或:

[mysql]
max_allowed_packet=16M

如果愿意,可以将选项名称中的下划线指定为短划线。以下选项组等效。两者都将服务器键缓冲区的大小设置为 512MB :

[mysqld]
key_buffer_size=512M

[mysqld]
key-buffer-size=512M

在程序调用时设置变量时,可以使用指定值乘数的后缀(比如 K , M , G 等),但在运行时不能使用SET设置该值。另一方面,使用SET,您可以使用表达式分配变量的值,当您在服务器启动时设置变量时,这是不正确的。例如,以下第一行在程序调用时合法,但第二行不合法:

$> mysql --max_allowed_packet=16M
$> mysql --max_allowed_packet=16*1024*1024

相反,以下第二行在运行时是合法的,但第一行不合法:

mysql> SET GLOBAL max_allowed_packet=16M;
mysql> SET GLOBAL max_allowed_packet=16*1024*1024;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独上西楼影三人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值