mysql8.0的配置文件在哪_MySQL 8.0新特性--让你轻轻松松找到配置项的位置

前言

我们都知道,MySQL配置项可以从多种方式设置:

1、在配置文件中定义, 查看配置路径:

mysqld --verbose --help| grep -A 1 "Default options"

/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf

2、通过命令动态修改set global var=value;

当同一个配置项可能在多个配置文件中都定义,或被动态调整过时,要想确认最终生效的值的来源是非常困难的。

令人高兴的是,MySQL 8.0提供一张表(performance_schema.variables_info)可轻松查找到一个变量在哪里被定义

使用教程案例

下面以max_connections为例,验证在不同文件和动态修改下如何查看定义位置。先查看当前值为多少:

mysql> show global variables like 'max_connections';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| max_connections | 151 |

+-----------------+-------+

2. 通过variables_info查看详细信息:

mysql> SELECT t1.*, VARIABLE_VALUE

FROM performance_schema.variables_info t1

JOIN performance_schema.global_variables t2

ON t2.VARIABLE_NAME=t1.VARIABLE_NAME

WHERE t1.VARIABLE_NAME LIKE 'max_connections'\G

*************************** 1. row ***************************

VARIABLE_NAME: max_connections

VARIABLE_SOURCE: COMPILED

VARIABLE_PATH:

MIN_VALUE: 1

MAX_VALUE: 100000

SET_TIME: NULL

SET_USER: NULL

SET_HOST: NULL

VARIABLE_VALUE: 151

1 row in set (0.09 sec)

可以看到变量的详细信息,包括变量名、变量值、最小最大值约束、以及最重要的变量来源和路径。

VARIABLE_SOURCE: COMPILED表示未在其它地方定义,采用系统内置默认值。

3. 修改配置文件/etc/my.cnf

[mysqld]

max_connections=200

保存,重启mysqld,执行同样的sql:

*************************** 1. row ***************************

VARIABLE_NAME: max_connections

VARIABLE_SOURCE: GLOBAL

VARIABLE_PATH: /etc/my.cnf

MIN_VALUE: 1

MAX_VALUE: 100000

SET_TIME: NULL

SET_USER: NULL

SET_HOST: NULL

VARIABLE_VALUE: 200

这时,能看到变量是在/etc/my.cnf定义的!

4.在多个配置文件中定义的情况 在/etc/mysql/my.cnf也定义一次:

[mysqld]

max_connections=300

重启再检查:

*************************** 1. row ***************************

VARIABLE_NAME: max_connections

VARIABLE_SOURCE: GLOBAL

VARIABLE_PATH: /etc/mysql/my.cnf

MIN_VALUE: 1

MAX_VALUE: 100000

SET_TIME: NULL

SET_USER: NULL

SET_HOST: NULL

VARIABLE_VALUE: 300

可以看到,尽管在两个文件中都定义max_connections,但最终生效的是/etc/mysql/my.cnf内定义的值。 再也不用担心无法确认在哪个配置文件了。动态修改的情况

mysql> set global max_connections=2000;

Query OK, 0 rows affected (0.04 sec)

执行查询:

*************************** 1. row ***************************

VARIABLE_NAME: max_connections

VARIABLE_SOURCE: DYNAMIC

VARIABLE_PATH:

MIN_VALUE: 1

MAX_VALUE: 100000

SET_TIME: 2017-11-14 11:54:19

SET_USER: root

SET_HOST: localhost

VARIABLE_VALUE: 2000

可以看到,来源字段显示DYNAMIC动态修改,且可看到修改时间、修改账户以及修改host。

结尾

很贴心很强大的一个MysQL 8.0新特性,赶紧用起来吧!

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值