第三节:MySQL的调控按钮——启动选项和系统变量
一、命令行上使用启动选项
启动选项的通用格式 --启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n]
禁止TCP/IP链接 略
修改MySQL服务的默认存储引擎 mysqld --default-storage-engine=MyISAM 这里没有测试
可以在my.cnf文件中指定为 default-storage-engine=MyISAM 需要重启MySQL
客户端常用形式的选项
--host 简写 -h 表示 主机名(ip)
--user 简写 -u 表示 用户名
--password 简写 -p 表示 密码
--port 简写 -P 表示 端口
--version 简写 -v 表示 版本信息
注意:
1.选项名和选项值之间可以没有间隙,或者用空白字符隔开
2.-password特殊-p和密码值之间不能有空白字符,--port的简写-P P是大写的。
二、配置文件中使用选项
推荐使用配置文件来设置启动选项
Windows操作系统路径,安装下面这些路径来寻找
%WINDIR%\my.ini, %WINDIR%\my.cnf 注:%WINDIR%表示Windows所在目录,正常是C:\Windows,可使用echo %WINDIR%输出路径。
C:\my.ini, C:\my.cnf
BASEDIR\my.ini, BASEDIR\my.cnf 注:BASEDIR指的是MySQL安装目录的路径
其他 略
类Unix操作系统中的配置文件
/etc/my.cnf 注:我在centos7中就是这个路径下配置
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf 注:$MYSQL_HOME是环境变量
其他 略
只测试过centos7下面是/etc/my.cnf
配置文件的内容(大开眼界)
[server]
(具体的启动选项...)
[mysqld]
(具体的启动选项...)
[mysqld_safe]
(具体的启动选项...)
[client]
(具体的启动选项...)
[mysql]
(具体的启动选项...)
[mysqladmin]
(具体的启动选项...)
有些的参数只能放在不同的组中
案例:[client]组放置了'default-storage-engine=MyISAM' 登录时候会报错 mysql: [ERROR] unknown variable 'default-storage-engine=MyISAM'
具体的启动选项:不允许加--前缀,并且每行只指定一个选项,而且=周围可以有空白字符(命令行中选项名和选项值之间不允许有空白字符)
两个选项组比较特别
[server]组下边的启动选项将作用与所有的服务器程序。
[client]组下边的启动选项将作用于所有的客户端程序。
常用命令对应能读取的组
启动命令 类别 能读取的组
mysqld 启动服务器 [mysqld]、[server]
mysqld_safe 启动服务器 [mysqld]、[server]、[mysqld_safe]
mysql.server 启动服务器 [mysqld]、[server]、[mysql.server]
mysql 启动客户端 [mysql]、[client]
mysqladmin 启动客户端 [mysqladmin]、[client]
mysqldump 启动客户端 [mysqldump]、[client]
特定MySQL版本的专用选项组
选项组的名称后加上特定的MySQL版本号。
案例:指定5.7的mysql程序才可以用 [mysqld-5.7]
测试:没有自己测试过,用上的时候再测试。
配置文件的优先级
多个配置文件中设置了相同的启动选项,最后一个配置文件为准。
同一个配置文件中多个组的优先级,以最后一个配置为准(写在下面的配置)
命令行和配置文件中启动选项的区别
1.大部分命令行的配置都可以放到配置文件中
2.如果同一个启动选项既出现在命令行中,又出现在配置文件中,那么以命令行中的启动选项为准。
三、系统变量
查看系统变量 show variables [like 匹配的模式] 注:直接用show variables表示所有输出。
案例:
查看当前的默认引擎:SHOW VARIABLES LIKE 'default_storage_engine';
查看当前最大连接数:SHOW VARIABLES like 'max_connections';
模糊查询default开头:show variables like 'default%'
设置系统变量
通过启动选项设置,前面学习了
服务器程序运行过程中设置
大部分系统变量可以通过服务器运行中设置,无须重启服务器。
设置不同作用范围的系统变量
GLOBAL:后面用到学习。
SESSION:后面用到学习。
注意事项:
不是所有都具有GLOBAL和SESSION的作用范围。
GLOBAL作用范围,比方说max_connections,表示服务器程序支持同时最多有多少个客户端程序进行连接。
SESSION作用范围,比如insert_id,表示在对某个包含AUTO_INCREMENT列的表进行插入时,该列初始的值。
有些系统变量只读的,不能设置值
如:MySQL当前版本
启动选项和系统变量的区别
启动选项是程序启动时程序员传递的一些参数,系统变量是影响服务器程序运行行为的变量。
关系:
大部分系统变量都可以当做启动选项传入。
有些系统变量是程序运行过程中自动生成的,不能当做启动选项传入。如:Auto_increment_offset。
有些启动选项不是系统变量,如:default-file
状态变量
值只能由服务器程序自己设定,程序员不能设置。
状态变量也有GLOBAL和SESSION两个作用范围,不写默认是SESSION
查看 show [GLOBAL|SESSION] status [like 匹配的模式];
案例:查询thread开头的session作用范围的状态变量show status like 'thread%'
脑图地址:方便有需要的同学高清看
http://naotu.baidu.com/file/a100e406fe26133c8b5c16923357f3ed?token=8aec9e6d7f4f7830