持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
启动选项简介
对于mysql服务端,在启动时可以指定同时连入的客户端数量、表的默认存储引擎,查询缓存的大小等设置项,当我们使用MySQL客户端连接mysql服务器时,需要指定IP地址、用户名及密码等设置项,各个设置项一般都有各自的默认值,我们可以在程序启动的时候去修改这些默认值,在启动时指定的设置项被称为启动选项,启动选项决定了程序启动后的行为。
指定启动选项
在启动可执行程序的时候,可以再命令行后面填写对应的启动选项,也可以在配置文件中指定。
命令行中指定
命令行中指定启动选项时,需要在选项前面增加--前缀,如果选项名是多个单词组成的,则需要用短划线连接(-或_);格式如下:
--启动选项1[=值1] --启动选项2[=值2] --启动选项3[=值3]...
启动选项注意事项
- 每个启动选项前面都需要加上
-- - 不需要值的启动选项,只需要
--名字 即可 - 需要值的启动选项,需要在=号后面加上值,选项、=号、值,三者之间不能有空白字符
- 每个命令执行文件都可以通过 命令 --help 形式看到所支持的启动选项,例如 mysql --help(mysqld有些特殊,需要写成 mysqld --verbose --help)
选项的长形式和短形式
为了方便,启动选项一般都有一个单词的全写和一个字母的简写,绝大多数情况下,我们都会使用简写形式,常见的长短形式如下:
| 长形式 | 短形式 | 含义 |
|---|---|---|
| --host | -h | 主机名 |
| --user | -u | 用户名 |
| --password | -p | 密码 |
| --port | -P | 端口 |
| --version | -V | 版本信息 |
短形式的注意事项如下:
- 短形式只需要一个短划线;
- 短形式,选项名和选项值可以没有间隙,也可以用空白字符隔开(-p比较特殊,必须和密码在一起);
- 区分大小写, -p和-P含义不同,需要注意;
配置文件中指定
在命令行中,每次启动都需要带上启动选项,如果选项过多是一件比较麻烦的事情,因此可以将选项写入到硬盘文件中,这样每次程序启动的时候读取配置文件中的选项就可以了。
配置文件中的启动项被划分为若干个组,每个组有一个组名,用中括号[]扩起来,如下:
[server]
(具体的启动选项...)
option1 #配置项1,该选项不需要选项值
option2 = value2 #配置项2,该选项需要选项值
[mysqld]
(具体的启动选项...)
[msyqld_safe]
(具体的启动选项...)
[client]
(具体的启动选项...)
[mysql]
(具体的启动选项...)
[mysqladmin]
(具体的启动选项...)
- 在配置文件中的,选项明必须是长形式,不可以写成短形式
- 配置文件中的启动选项不可以加--前缀,并且每行只能有一个选项
- =等号周围可以有空白字符,命令行中是不可以有的
- 配置文件中,可以使用#号作为注释
配置文件优先级
- MySQL根据路径的先后顺序读取配置文件,并且配置选项以后面的文件为准;
- 同一配置文件多个组的优先级,相同的选项,后面出现的组会覆盖前面出现的组。
- 配置文件中的选项和命令行中的选项优先级,命令行中附带的选项会覆盖配置文件中的。
系统变量
MySQL系统变量是指MySQL服务器程序运行过程中会用到的影响程序行为的变量,如默认存储引擎系统变量default_storage_engine等,每个系统变量都有一个默认值,我们可以使用命令行或者配置文件中的选项在启动服务器时改变一些系统变量的值,大多数的系统变量的值也可以在程序运行过程中修改,而无需提成和重新启动它。
查看系统变量
#查看系统变量
SHOW VARIABLES [LIKE ];
mysql>SHOW VARIABLES LIKE 'default_storage_engine';
设置系统变量
我们可以通过启动服务器时传送启动选项的方式来进行设置系统变量,方式如下:
- 通过命令行设置系统变量
mysqld --default-storage-engine=MyISAM --max-connections=20
- 通过配置文件设置系统变量
[server]
default-storage-engine=MyISAM
max-connections=20
启动选项和系统变量的区别
- 大部分的系统变量都可以被当作启动选项传入。
- 有些系统变量是在程序运行过程中自动生成的,是不可以当作启动选项来设置,比如auto_increment_offset、character_set_cLient啥的。
- 有些启动选项也不是系统变量,比如defaults-file。
小结
当我们启动程序的时候会需要一些设置项,各个设置项一般都有各自的默认值,我们可以在程序启动的时候去修改这些默认值,在启动时指定的设置项被称为启动选项,启动选项决定了程序启动后的行为。
系统变量是指MySQL服务器程序运行过程中会用到的影响程序行为的变量。大部分的系统变量都可以被当作启动选项传入,有些启动选项也不是系统变量。