2_MySQL启动选项,系统变量和状态
在程序启动时指定的设置项称之为启动选项(startup options)
- 可以放在命令行中指定;
- 可以放在配置文件中指定。
启动选项
命令行中指定
-
通用格式: --启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n],例如
mysqld --default-storage-engine=MyISAM
; -
在选项名前加上--前缀,例如
mysqld --skip-networking
; -
选项名是由多个单词构成的,它们之间可以由短划线-连接起来,也可以使用下划线_连接起来,例如
mysqld --skip_networking
; -
选项名、=、选项值之间不可以有空白字符;
-
查看mysqld支持的启动选项,
mysqld --verbose --help
; -
选项名区分大小写,支持短形式;
长形式 短形式 含义 --host
-h
主机名 --user
-u
用户名 --password
-p
密码
配置文件中指定
在命令行中设置启动选项只对当次启动生效,
推荐把启动选项配置在配置文件中,每次启动服务器时,会从配置文件中加载。
配置文件的路径
在类UNIX
操作系统中,MySQL
会按照下列路径来寻找配置文件:
路径名 | 备注 |
---|---|
/etc/my.cnf |
|
/etc/mysql/my.cnf |
|
SYSCONFDIR/my.cnf |
|
$MYSQL_HOME/my.cnf |
特定于服务器的选项(仅限服务器) |
defaults-extra-file |
命令行指定的额外配置文件路径 |
~/.my.cnf |
用户特定选项 |
~/.mylogin.cnf |
用户特定的登录路径选项(仅限客户端) |
配置文件的内容
配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]
包括。
[server]
option1 #这是option1,该选项不需要选项值
option2 = value2 #这是option2,该选项需要选项值
(具体的启动选项...)
[mysqld]
(具体的启动选项...)
[mysqld_safe]
(具体的启动选项...)
[client]
(具体的启动选项...)
[mysql]
(具体的启动选项...)
[mysqladmin]
(具体的启动选项...)
不同的启动命令读取的组不同。
启动命令 | 类别 | 能读取的组 |
---|---|---|
mysqld |
启动服务器 | [mysqld] 、[server] |
mysqld_safe |
启动服务器 | [mysqld] 、[server] 、[mysqld_safe] |
mysql.server |
启动服务器 | [mysqld] 、[server] 、[mysql.server] |
mysql |
启动客户端 | [mysql] 、[client] |
mysqladmin |
启动客户端 | [mysqladmin] 、[client] |
mysqldump |
启动客户端 | [mysqldump] 、[client] |
配置的优先级
- 命令行指定优先;
- 最后一个配置文件中最后分组的配置生效;
系统变量
启动选项是在程序启动时传递的参数,
而系统变量是影响服务器运行行为的变量。
- 命令行/配置文件指定;
- 在运行时修改;
查看系统变量
- 支持模糊查询,
SHOW VARIABLES [LIKE 匹配的模式];
系统变量
- 系统变量的作用范围
- 全局变量
- GLOBAL
- 影响服务器的整体操作;
- 会话变量
- SESSION/LOCAL
- 影响某个客户端连接的操作;
- 全局变量
- 服务器启动时,会初始化全局变量;
- 客户端连接时,会将全局变量初始化会话变量;
- 设置系统变量
SET [GLOBAL|SESSION] 系统变量名 = 值;
SET [@@(GLOBAL|SESSION).]var_name = XXX;
- 省略作用范围,默认会是SESSION
- 查看系统变量
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
- 省略作用范围,默认会是SESSION
状态变量
状态变量用于显示服务器程序运行状况
- 仅由服务器自行设置;
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
- 省略作用范围,默认会是SESSION