启动选项和配置文件
MySQL是怎样运行的
其实在学习笔记1中已经有了一些MySQL的配置选项比如 mysqld,mysqld_safe,所以这一节感觉应该就是简单启动选项的介绍
在命令行上使用选项
启动服务器程序的命令行后面指定启动选项的通用格式:
--启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n]
各个启动选项之间使用空白字符隔开,每个启动选项名称前面加–,选项名,=,选项值之间不可以有空格。举例如下:
-
服务端禁止客户端使用TCP/IP进行通信
mysqld --skip-networking
-
改变表的默认存储引擎
mysqld --default-storage-engine=存储引擎
配置文件中使用选项
配置文件中的启动选项被划分为若干个组,每个组有一个组名,每个组下面可以定义若干个启动选项,配置文件中只能使用长形式的选项就是不能写缩写,也不用加–前缀,选项之间用回车分隔,并且=周五可以有空白字符。
可以用#添加注释
需要注意的一点是,mysqld_safe和mysql.server这两个程序在启动时都会读取[mysqld]选项组中的内容。
[server]
#服务器
(具体的启动选项...)
[mysqld]
(具体的启动选项...)
[mysqld_safe]
(具体的启动选项...)
[client]
#客户端
(具体的启动选项...)
[mysql]
(具体的启动选项...)
[mysqladmin]
(具体的启动选项...)
特定MYSQL版本的专用选项组
选项组的名称后加上特定的MySQL版本号,比如对于[mysqld]选项组来说,可以定义一个[mysqld-5.7]的选项组,它的含义和[mysqld]一样,只不过只有版本号为5.7的mysqld程序才能使用这个选项组中的选项。
配置文件的优先级
MySQL会在某些固定的路径下搜索配置文件,如果多个配置文件中有相同的启动项,那么以最后一个配置文件为准。
同一个配置文件中在不同组中出现的相同配置项,以最后出现的为准
如果一个启动项不仅在命令行中出现了,又在配置文件中出现了,那么以命令行的为准。
系统变量
系统变量是有作用域的
- GLOBAL:全局变量,影响服务器的整体操作。
- SESSION:会话变量,影响某个客户端连接的操作。(注:SESSION有个别名叫LOCAL)
但不是所有的系统变量都有作用范围的,有的系统变量只能只读比如version
系统变量比如
max_connections:允许同时连入的客户端数量
default_storage_engine:默认存储引擎
query_cache_size:查询缓存大小
可以用下列命令来查看MySQL服务器支持的系统变量和当前值–这里是session作用范围的系统变量
SHOW VARIABLES [LIKE 匹配的模式];
设置系统变量
启动时,可以通过命令行或者配置文件
mysqld --default-storage-engine=MyISAM --max-connections=10
或者
[server] default-storage-engine=MyISAM max-connections=10
运行中设置无需重启
运行过程中设置系统变量
SET [GLOBAL|SESSION] 系统变量名 = 值;
举例 如果只想对本客户端生效,以下三条语句都可以
语句一:SET SESSION default_storage_engine = MyISAM;
语句二:SET @@SESSION.default_storage_engine = MyISAM;
语句三:SET default_storage_engine = MyISAM;
状态变量
比如Threads_connected表示当前有多少客户端与服务端建立了连接
Handler_update表示已经更新了多少行
可以查询
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];