Mysql 的配置文件和参数理解

一、配置文件参数替换原则

我们可以通过命令 mysql --help --verbose | grep my.cnf 查看mysql的配置文件有多个。如果两个配置文件有共同的参数,当mysql启动的时候,会以那个参数为准了?

如果两个配置文件有共同的参数,mysql 会以上面的顺序去读my.cnf,后面的的my.cnf会替换前面的my.cnf配置。所以当我们在/etc/my.cnf文件中配置的参数没有生效时,可能就是被后面的my.cnf替换了。

二、 标签分类介绍

[client]  ###  所有的客户端登录的配置参数
user=root ## user和password是免密码登录的设置
password=123456

[mysql]   ### 这个标签分类指的是 进入mysql命令登录进去后的配置参数
prompt=(\\u@\\h) [\\d]>\\_

[mysqld]  ### 这个标签分类指的是 mysql启动的配置参数
skip-grant-tables=1
basedir=/usr/local/mysql-5.7.16
log_error=mysql_error.log
datadir=/mdata/mysql_test_data
socket=/var/lib/mysql/mysql.sock

上面是我的/etc/my.cnf配置文件

三、在mysql登录后查看配置的参数

show variables like 'log_error'

 四、 参数的作用域

① global 全局的

例如:set global long_query_time = 5; 

 这里需要注意的是:当我们查询全局某个参数时,一定需要加上global, 不然会一直显示session的值,

 因为在前面我设置了session的long_query_time的值是1, 就算后面重新设置了global的long_query_time,对应当前这个session也是没用作用的,因为当前的session的long_query_time的值已经存在了当前的session中了,除非当前的session断开,重新连接。

② session  会话的

set long_query_time = 1;  其实等于  set session long_query_time = 1;

 注意:我们直接set 是改的session当前会话的参数值,但是实际情况中,我们一般是要根据全局来修改,所以在修改和查询的时候都需要在命令中加入global全局操作。

五、 参数查看的另外一种方法

其实mysql的参数还可以通过performance_schema(性能分析数据库)数据库中的global_variables表中查看全局参数。

 在session_variables表中查看所有session会话的参数设置

 可以通过variables_by_thread表查看当前所有连接的session中参数的不同值

 表中的 thread_id 怎么跟 我们的 show processlist的id对应找到了? 

 mysql5.7中有一个threads中包含了processlist的id

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值