MySQL是怎样运行的(二)

第 2章 MySQL的调控按钮——启动选项和系统变量

2.1 启动选项和配置文件

2.1.1 在命令行上使用选项

启动客户端程序时在-h参数后边紧跟服务器的IP地址,这就意味着客户端和服务器之间需要通过TCP/IP网络进行通信。如果在启动服务器程序的时候就禁止客户端使用TCP/IP网络进行通信,可以在启动服务器程序的命令行里添加skip-networking启动选项。如:

mysqld --skip-networking

其中skip-networking也可以写成skip_networking

创建表的语句中没有显示指定表的存储引擎的话,就会默认使用InnoDB作为表的存储引擎,改变表的默认存储引擎:

mysqld --default-storage-engine=MyISAM

每个MySQL程序都有许多不同的选项,使用--help选项可以查看该程序支持的全部启动选项以及他们的默认值。

mysql --help(MySQL程序支持的启动选项)

mysql_safe --help(mysql_saf程序支持的启动选项)

mysqld --verbose --help(mysqld 支持的的启动选项)

选项的长形式和短形式(注意区分大小写)

 2.1.2 配置文件中使用选项

把需要设置的启动选项写在配置文件中,每次启动服务器的时候都从这个配置文件里加载相应的启动选项,也称为选项文件。

配置文件路径

配置文件内容:启动选项被划分为若干个组,每组有一个组名,用中括号[]括起来。

 特定MySQL版本专用选项组[mysqld]选项组,可以定义一个[mysqld-5.7]的选项组,只有版本号为5.7mysqld程序才能使用这个选项组中的选项。

配置文件的优先级:命令行指定default-extra-file启动选项来指定额外的配置文件路径。MySQL将按照我们给定的顺序依次读取各个配置文件,如果该文件不存在则忽略。如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准

同一个配置文件中的多个组的优先级:同一个命令可以访问配置文件中的多个组,比如mysqld可以访问[mysqld][server]组,如果在同一个配置文件中,将以最后出现的组中的启动选项为准

default-file的使用:不想让MySQL到默认的路径下搜索配置文件,可以在命令行指定:

mysqld --default-file=/tmp/myconfg.txt

这样如果文件不存在或无法访问,则会发生错误。

2.1.3 在命令行和配置文件中启动选项的区别

在命令行上指定的绝大部分启动选项都可以放到配置文件中,但一些是专门为命令行设计的,放在配置文件没意义。还有一些只能用在命令行中。如果同一个启动选项即出现在命令行中,又在配置文件中,那么以命令行为准

2.2 系统变量

2.2.1 系统变量简介

MySQL服务器程序运行过程中会用到许多影响程序行为的变量,它们被称为MySQL系统变量。每个系统变量都有一个默认值,我们可以使用命令行或者配置文件中的选项在启动服务器时改变一些系统变量的值。大多数系统变量的值也可以在程序运行的过程中修改,而无需停止并重新启动它。

2.2.2 查看系统变量

show variables [like 匹配的模式]

2.2.3 设置系统变量

通过启动选项设置

  • 通过命令行添加到启动选项:mysqld --default-storage-engine=MyISAM --max-connections=10
  • 通过配置文件添加启动选项:

[server]

default-storage-engine=MyISAM

max-connections=10

对于启动选项来说,如果启动选项名由多个单词组成,各个单词之间用短划线-或者下划线_连接起来都可以,但对应的系统变量必须使用下划线_连接起来

服务器运行过程中设置

对于大部分系统变量来说,它们的值可以在服务器程序运行过程中动态修改而无需停止并重启服务器。

  • 设置不同作用范围的系统变量

GLOBAL:全局变量,影响服务器的整体操作

SESSION:会话变量,影响某个客户端连接操作。(SESSION有个别名叫LOCAL

通过启动选项设置的系统变量的作用范围都是GLOBAL的,也就是对所有客户端都有效

SET [GLOBAL|SESSION] 系统变量名=值

SET [@@(GLOBAL|SESSION).]var_name=xxx;

之后连接到服务器的客户端都使用MyISAM作为默认的存储引擎

SET GLOBAL default_storage_engine=MyISAM;

SET @@GLOBAL.default_storage_engine=MyISAM;

只对本客户端生效

SET SESSION default_storage_engine=MyISAM;

SET @@SESSION.default_storage_engine=MyISAM;

SET default_storage_engine=MyISAM;

  • 查看不同作用范围的系统变量

show variables语句查看的是SESSION作用范围的系统变量

show [global|session] variables [like 匹配模式]

  • 注意

并不是所有系统变量都具有GLOBAL和SESSION的作用范围

有些系统变量是只读的,并不能设置值

启动选项和系统变量的区别

启动选项是程序启动时传递的一些参数,系统变量是影响服务器程序运行行为的变量

  • 大部分系统变量都可以当做启动选项传入
  • 有些系统变量是在程序与运行过程中自动生成的,是不可以当作启动选项来设置的
  • 有些启动选项也不是系统变量

2.3 状态变量

为了让我们更好的了解服务器程序的运行状况,MySQL服务器程序中维护了很多关于程序运行状态的变量,被称为状态变量

他们的值只能由服务器程序自己来设置。也有GLOBAL和SESSION两个作用范围

show  [global|session] status [like 匹配模式]

不写明作用范围,默认的作用范围是SESSION

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值