文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  使用选项设置程序变量

6.2.2.5 使用选项设置程序变量

许多 MySQL 程序在运行时可以使用 SET 语句设置内部变量。参见 第 15.7.6.1 节“SET 语法用于变量赋值”第 7.1.9 节“使用系统变量”

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

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

第一个命令以字节为单位指定值。第二个命令以兆字节为单位指定值。对于取数值的变量,可以使用后缀 KMG 来指定 1024、10242 或 10243 的倍数。(例如,在用于设置 max_allowed_packet 时,后缀表示千字节、兆字节或吉字节。)从 MySQL 8.0.14 开始,后缀也可以是 TPE 来指定 10244、10245 或 10246 的倍数。后缀字母可以是大写或小写。

在选项文件中,变量设置不带前面的连字符

[mysql]
max_allowed_packet=16777216

[mysql]
max_allowed_packet=16M

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

[mysqld]
key_buffer_size=512M

[mysqld]
key-buffer-size=512M

在程序调用时设置变量时可以使用指定值乘数的后缀,但在运行时使用 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;