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


启动参数可以放在命令行中指定,也可以把它们放在配置文件中指定。

在命令行上使用选项

  • mysqld --skip-networking //禁止客户端使用TCP/IP的参数
  • mysqld --default-storage-engine=MyISAM //改变表的默认引擎的参数
  • 启动服务器程序的命令行参数通用格式:–启动选项1[=值1] --启动选项2[=值2] … --启动选项n[=值n]
  • -help选项,你可以查看该程序支持的全部启动选项以及它们的默认值
  • 查看 mysqld 支持的启动选项有些特别,需要使用 mysqld – verbose --hel

选项的长形式和短形式

  • 短形式的选项名只有一个字母,选项名前只加一个短划线前缀
  • 选项名是区分大小写的;

配置文件中使用选项

  • 在命令行中设置启动选项只对当次启动生效
  • 把需要设置的启动选项都写在这个配置文件中,每次启动服务器的时候都从
    这个文件里加载相应的启动选项,就可以永久设置

配置文件的路径

windows操作系统的配置文件

类Unix操作系统的配置文件

配置文件的内容

  • 分为了若干组,每个[]括起来的是组名;
  • 配置文件中不同的选项组是给不同的启动命令使用的

特定Mysql版本的专用选项组

可以在选项组的名称后加上特定的 MySQL 版本号,比如对于 [mysqld] 选项组来说,我们可以定义一个[mysqld-5.7] 的选项组,它的含义和 [mysqld] 一样,只不过只有版本号为 5.7 的 mysqld 程序才能使用这个选项组中的选项

配置文件的优先级

按照多个固定的路径搜索配置文件,如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准。

同一个配置文件中多个组的优先级

将以最后一个出现的组中的启动选项为准

defaults-file的使用

1、指定配置文件的搜索路径:mysqld --defaults-file=/tmp/myconfig.txt
2、defaults-extra-filedefaults-file的区别,使用defaults-extra-file`可以指定额外的配置文件搜索路径(也就是说那些固定的配置文件路径也会被搜索)

命令行和配置文件中启动选项地区别

如果同一个启动选项既出现在命令行中,又出现在配置文件中,那么以命令行中的启动选项为准!

系统变量

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

查看系统变量

1、命令查看 MySQL 服务器程序支持的系统变量以及它们的当前值
SHOW VARIABLES [LIKE 匹配的模式];
2、LIKE 过滤条件来查看我们需要的系统变量的值,
3、LIKE 表达式后边可以跟通配符来进行模糊查询

设置系统变量

通过启动选项设置

大部分的 系统变量 都可以通过启动服务器时传送启动选项的方式来进行设置
对于启动选项来说,如果启动选项名由多个单词组成,各个单词之间用短划线 - 或者下划线 _ 连接起来都可以,但是对应的系统变量之间必须使用下划线 _ 连接起来

服务器运行过程中设置

系统变量 比较牛逼的一点就是,对于大部分系统变量来说,它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器。不过系统变量有作用范围之分

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

1、对于同一个系统变量,我们有时想让不同的客户端有不同的值
2、系统变量的 作用范围 的概念,具体来说 作用范围 分为这两种:
GLOBAL :全局变量,影响服务器的整体操作。
SESSION :会话变量,影响某个客户端连接的操作。
3、服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值)。然后服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用相应全局变量的当前值初始化
4、通过启动选项设置的系统变量的作用范围都是 GLOBAL 的,也就是对所有客户端都有效的
5、在服务器程序运行期间通过客户端程序设置系统变量的语法:
SET [GLOBAL|SESSION] 系统变量名 = 值;
SET [GLOBAL|SESSION] 系统变量名 = 值;
如果在设置系统变量的语句中省略了作用范围,默认的作用范围就是 SESSION

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

SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
默认查看的是 SESSION 作用范围的系统变量。

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

1、启动选项 是在程序启动时我们程序员传递的一些参数,而 系统变量 是影响服务器程序运行行为的变量
2、大部分的系统变量都可以被当作启动选项传入。
3/有些系统变量是在程序运行过程中自动生成的,是不可以当作启动选项来设置,比如auto_increment_offset 、 character_set_client 啥的。
4、有些启动选项也不是系统变量,比如 defaults-file

状态变量

1、为了让我们更好的了解服务器程序的运行情况, MySQL 服务器程序中维护了好多关于程序运行状态的变量,它们被称为 状态变量 。
2、状态变量 是用来显示服务器程序运行状况的,所以它们的值只能由服务器程序自己来设置,我们程序员是不能设置的。
3、 状态变量 也有 GLOBAL 和 SESSION 两个作用范围的,所以查看 状态变量 的语句可以这么写:SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式]; 默认的作用范围是 SESSION

  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值