用环境变量指定选项
要想用环境变量指定选项,使用适用注释处理器的语法来设置变量。例如,在Windows或NetWare中,可以设置USER变量来指定MySQL账户名。要想实现,使用语法:
SET USER=your_name
在Unix中的语法取决于你的外壳。假定你想要使用MYSQL_TCP_PORT变量指定TCP/IP端口号。典型的语法为(例如sh、bash、zsh等等):
MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT
第1个命令设置变量,export命令将变量导出到外壳环境,以便其值可供MySQL和其它进程访问。
csh和tcsh有类似的问题。运行这些外壳时,使用setenv使外壳变量适用环境:
setenv MYSQL_TCP_PORT 3306
可以在命令提示符下执行设置环境变量的命令,以便立即生效。这些设定值持续到你注销。要向让这些设定值在你每次登录时生效,将相应命令放入每次启动时命令解释符所读的启动文件中。在Windows中典型启动文件为AUTOEXEC.BAT,bash为.bash_profile,或者tcsh为.tcshrc。
用选项设置程序变量
许多MySQL程序有一些内部变量可以在运行时设置。程序变量的设置与带有值的其它长选项相同。例如,mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度。要想为mysql将max_allowed_packet变量的值设置为16MB,使用下面的任何一个命令:
shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M
第1个命令以字节指定值。第2个命令以兆字节指定值。变量值可以有一个后缀K、M或者G(可以为大写或小写)来表示千字节、兆字节或者十亿字节的单位。
在选项文件中,变量设定值没有引导破折号:
[mysql]
max_allowed_packet=16777216
或:
[mysql]
max_allowed_packet=16M
如果你喜欢,变量名的下划线可以为破折号。
注释:MySQL 5.1仍然能识别旧的语法--set-variable = option=value,但现在不赞成使用。
部分服务器变量可以在运行时设置。