2 MySQL的调控按钮——启动选项和系统变量
2.1 启动选项和配置文件
==启动选项(startup option)==,控制着程序启动后的行为。
启动选项可以在命令行中指定,也可以在配置文件中指定。
在命令行上指定启动选项
比如,禁止客户端使用TCP/IP网络进行通信:
|
|
参数--
为前缀,多个单词以-
或_
连接。
修改默认存储引擎:
|
|
启动服务器程序的命令行指定启动选项的通用格式:
|
|
查看程序全部启动选项及其默认值:
常用的启动选项可以有短形式的:
配置文件中指定启动选项
命令行配置只能当次启动生效。
1.配置文件的路径
MySQL程序启动时会在多个路径下寻找配置文件,也可在命令行中添加额外的配置文件路径。不同系统有所不同。
Windows:
- 前3个路径,配置文件可以
.ini
也可以是.cnf
%WINDIR
指Windows目录,通常是C:\WINDOWS
。可以通过echi %WINDIR%
查看。BASEDIR
是指MySQL的安装目录路径。%APPDATA%
表示Windows应用程序数据目录,可用echo %APPDATA%
查看。- 最后一个
.mylogin.cnf
有点特殊,它不是纯文本文件,是程序mysql_config_editor创建的加密文件。
类Unix:
2.配置文件的内容
配置文件中的启动选项被划分为若干个组(组名用[]
扩起来),不同选项组给不同程序使用。
[server]
option1
option2 = value2
...
[mysqld]
option1
option2 = value2
...
[mysqld_safe]
option1
option2 = value2
...
[client]
option1
option2 = value2
...
[mysql]
option1
option2 = value2
...
[mysqladmin]
option1
option2 = value2
...
3.特定MySQL版本的专用选项组
# 只有对应版本的mysqld才能使用
[mysqld-5.7]
4.配置文件的优先级
配置文件读取,是按照表2-2或表2-3的顺序依次加载,相同启动选项,以最后一个配置文件为准。
5.同一个配置文件中多个组的优先级
以最后一个出现的组中的启动选项为准。
6.defaults-file的使用
不想让MySQL到默认的路径下搜索配置文件。
|
|
程序启动时只在/tmp/myconfig.txt
路径下搜索配置文件。
在命令行和配置文件中启动选项的区别
除了defaults--extra-file
、defaults-file
这样的本身指定配置文件路径的和一些只能在命令行使用的,其它启动选项都可以放到配置文件中。
命令行的优先级高于配置文件。
2.2 系统变量
系统变量:MySQL服务器程序在运行过程中会用到许多影响程序行为的变量。有好几百个。
每个系统变量都有一个默认值,可使用命令行或配置文件在启动服务器是修改。
大多说系统变量的值也可以在程序运行过程中修改,而无须停止并停止并重新启动服务器。
查看系统变量
|
|
设置系统变量
1.通过启动选项设置
|
|
[server]
default-storage-engine=MyISAM
max-connections=10
注:系统变量,各单词之间只能用
_
连接。
2.运行中设置
系统变量有作用范围之分:
- Global(全局范围):影响服务器的整体操作。(全局变量)
- Session(会话范围):影响某个客服端连接的操作。(会话变量)
服务器程序运行期间通过客服端程序设置系统变量的语法:
如果在设置系统变量的语句中省略了作用范围,默认是Session。
查看不同作用范围的系统变量:
|
|
注:
通过启动选项设置的系统变量的作用范围都是GLOBAL。
一些系统变量只具有Global作用范围,如max_connections。
一些系统变量只具有Session作用范围,如inser_id。
有些系统变量是只读的,如version。
3.启动选项和系统变量的区别
- 大部分的系统变量都可以当作启动选项传入。
- 有些系统变量是在程序运行过程中自动生成的,不可以当作启动选项来设置,比如 character_set_client。
- 有些启动选项也不是系统变量,比如 defaults-file。
2.3 状态变量
MySQL服务器程序运行状态的变量,好几百个,不能人为设置。
|
|
文章作者 andyron
上次更新 2025-07-17
许可协议 原创文章,如需转载请注明文章作者和出处。谢谢!