第二章Mysql的调控按钮-启动选项和系统变量

2.1启动选项和配置文件

一般在启动的时候加的参数称为启动选项,启动选项可以在配置文件中设置,也可以以启动参数的形式设置,对于服务度的启动mysqld或者mysqld_safe等还是客户端的启动mysql或者mysqladmin的启动都可以设置启动项。

2.1.1在命令行上使用选项
1、禁止使用tcp/ip
mysqld --skip-networking
2、设置服务器使用的存储引擎
mysqld --default-storage-engine=MYISAM
3、查看启动命令有哪些启动选项
mysql/mysqladmin/mysql_safe --help
注意:对于mysqld是mysqld --verbose --help

注意:
1、对于启动项而言只能是–选项1=[参数1] --选项2=[参数2]的形式,对于选项名,=,选项值之间不能有空格。

2、上面是选项的长形式,也有选项的短形式,即用字母来代替,比如-u代表–user,-P代表–port,-p代表–password,注意此时用短形式的话选项名和选项值之间可以用空格隔开,但是对于密码的-p不行。

2.1.2配置文件中使用选项

1、配置文件的使用路径

其中可以用defaults-extra-file来指定额外配置路径

注意:如果mysqld_safe会调用mysqld来启动,所以,如果mysql_safe不能识别的启动项会交由mysqld来执行。

2、配置文件的内容

配置文件中被划分为多个选项组

[server]   
[mysqld]
[mysql_safe]
[mysql.server]
[client]
[mysql]
[mysqladmin]
[mysqldump]

注意在配置文件中,如果是选项名=选项值得时候,选项名,=,选项值之间不能有空白符号。

[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

并且不同的选项组用于不同的程序,如mysqld只能用于mysqld启动的程序,而mysql只能用于mysql启动的程序,但是client可以用于所有客户端程序,server可以用于所有服务器程序。

3、特点MYSQL版本使用专用选项组

[mysqld-5.7]
#上面选项组便只能用于5.7版本的mysqld启动程序

4、配置文件的优先级

一般命令行中的启动选项优先级高于defaults-extra-file中的优先级高于其他地方配置文件中的优先级;

如果是在同一个配置文件中,以出现到最后的配置为准。

5、defaults-file的使用

如果不想在默认配置文件中搜索,则可以指定具体的配置文件位置,用defaults-file=文件位置来指定。

2.2系统变量

2.2.1系统变量简介

系统变量可以在服务器运行过程中修改,无需重新启动。常见的如default_storage_engine默认的存储引擎,max_connection表示可以连接的客户端的数目。

2.2.2查看系统变量
show variables like ''
2.2.3设置系统变量

1、通过启动项设置

此时可以通过命令设置启动选项或者修改启动配置文件设置

mysqld --default-storage-engine=MYISAM

注意此时修改的变量的作用域都是GLOBAL的。

2、服务器运行时设置

根据服务器的范围不同分为不同的作用范围:

GLOBAL:作用于全局范围,影响服务器的操作,一般称为全面变量。

SESSION:影响某个客户端连接,具有SESSION范围的变量称为会话变量。

并且服务器启动时会为每个GLOBAL的变量分配默认值,然后当有客户端连接服务器的时候,通过GLOBAL的变量的值初始化对应客户端的SESSION变量。

设置全局变量

set GLOBAL 变量名=变量值
#SET GLOBAL default_storage_engine=MYISAM
set @@GLOBAL.变量名=变量值

注意此时表示后面连接到服务器的客户端的default_storage_engine为MYISAM。

设置会话变量

set SESSION 变量名=变量值
set @@SESSION.变量名=变量值
set 变量名=变量值

此时可以看出省略作用范围表示的是会话变量,并且表示当前客户端的会话变量为对应的值。

查看系统变量

#查看全局变量
show GLOBAL variables LIKE ''
#查看局部变量
SHOW SESSION VARIABLES LIKE ''

注意:如果有global表示查看全局变量,如果没有该变量便不显示他,使用session显示当前的session变量,如果没有显示全局变量。并且session可以省略。

客户端改变某个系统变量的GLOBAL的值,并不会影响当前已经连接的客户端的session值,而是影响的是新连接的客户端的session值

2.3状态变量

状态变量表示服务器的运行情况,其中只能由服务器自己设置,不能人为设置。

其中显示状态变量为:

show [global|session] status like ''

其中session可以省略。

你可能感兴趣的:(MySQL是怎样运行的读书笔记,mysql,java)