关键字:启动选项、系统变量、状态变量
2.1、启动选项
2.1.1、定义
在mysql程序启动时指定的设置项
2.1.2、设置方式
(1)在命令行上使用
a)短形式和长形式
短形式格式:-option1value1,例如:-h127.0.0.1
长形式格式:--option1[=value1] –option2[=value2],例如:--skip-networking –default-storage-engine=Innodb
b)查看支持的所有启动选项:
mysql --help
mysql_safe --help
mysqld --verbose –help
(2)在配置文件中使用
在命令行中使用只在当次启动中生效,在配置文件中使用会永久生效,推荐使用配置文件。
a)配置文件的位置:
在类unix系统中,mysql会在下列位置中寻找mysql的配置文件
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf($MYSQL_HOME为环境变量,本文件仅限服务器)
--defaults_extra_file(命令行指定)
~/.my.cnf
~/.mylogin.cnf(客户端使用)
b)配置文件的内容
配置文件中的启动选项被划分为若干组,每个组有一个组名,用[]扩起来。mysql安装目录的bin目录下的可执行文件对应配置文件中不同组的配置。
共有下面几个组:[server]、[mysqld]、[mysqld_safe]、[client]、[mysql]、[mysqladmin]
每个可执行文件可使用配置文件中组的配置如下表:
可执行文件可使用配置文件中组的配置 | ||
类别 | 可执行文件 | 能使用的组 |
启动服务器 | mysqld | [mysqld]、[server] |
mysql_safe | [mysqld]、[server]、[mysql_safe] | |
mysql.server | [mysqld]、[server]、[mysql.server] | |
启动客户端 | mysql | [mysql]、[client] |
mysqladmin | [mysqladmin]、[client] | |
mysqldump | [mysqldump]、[client] |
格式:每个组中的内容设置为下:
option1[=value1]
option2[=value2]
配置文件中只能使用长形式
c)优先级
如果多个配置文件中设置了相同的选项,那么以最后一个为准;
同一个配置文件中,不同组设置了相同的选项,那么以后面的为准;
如果一个启动选项在配置文件中和命令行都出现了,那么以命令行为准。
2.2、系统变量
mysql服务器在运行过程中,影响程序行为的变量,称为mysql系统变量。
(1)作用范围:
mysql的系统变量分为两个作用范围GLOBAL和SESSION(local)。
GLOBAL影响整个服务器,SESSION影响某个客户端的当前连接。
(2)查看系统变量
SHOW [GLOBAL|SESSION] VARIABLES [like ‘查询的名称%’]
不指定范围,默认查SESSION范围。
(3)设置系统变量
a)通过启动选项设置
通过启动选项设置的系统变量范围都是GLOBAL的。
通过启动选设置有两种方式,一种是命令行,一种是配置文件,上面已经说过。
b)服务器在运行过程中设置
SET [GLOBAL|SESSION] 系统变量名=值;
或者SET [@@GLOBAL|SESSION.]系统变量名=值
如果省略范围,默认为SESSION范围。
如果某个客户端改变了某个系统变量在GLOBAL范围的值,并不会影响该系统变量在当前已经连接的客户端作用范围为SESSION的值,只会影响后续连入的客户端在范围为SESSION的值。
注意:1、并不是所有的系统变量都有GLOBAL和SESSION的范围;2、有些系统变量的值是只读的,并不能设置。
2.3、状态变量
mysql中维护的关于程序运行状态的变量,称为状态变量。
查看状态变量:
SHOW [GLOBAL|SESSION] STATUS [like ‘查询的名称%’]