news 2026/3/10 15:05:28

MySQL参数配置一次说清楚

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL参数配置一次说清楚

通过对MySQL参数进行配置,了解这些参数的使用方式和功能,可以对数据库进行优化,解决一些参数相关的问题。

下面对常见的MySQL配置参数进行说明:

如何进行参数配置

1.set session

会话参数,代表在当前会话(窗口/连接)才有效,关闭会话后自动失效。

查看session级别的配置参数

SHOW SESSION VARIABLES;

比如把自动提交功能关闭

set session autocommit = OFF;

session 关键字可以省略。

因为session是会话级别的配置参数,所以新打开一个查询窗口,之前配置的参数就不会生效。在上面把autocommit 改为 OFF后,新打开一个查询窗口,然后再执行SHOW SESSION VARIABLES;查询命令:

在新窗口中,autocommit还是开启状态,这也就是会话级别配置的特点,仅在当前会话生效。

一般很少修改会话级别的参数。

2.set global

全局参数,在Mysql服务器运行过程中会一直生效,直到mysql服务关闭或者重启。重启后全局参数就会失效。

需要注意的是,部分参数在set global并不会立即生效,需要重新建立连接后才有效(重启navicat)。

查询跟数据库连接相关的配置参数

show VARIABLES like '%connection%';

最大连接数max_connections,目前值是151,通过set global将其改为200

3.配置文件

有写参数需要在MySQL的配置文件中进行调整,在windows系统和linux系统中,MySQL的配置文件存放的地址不同。

windows系统的配置文件,通常放到MySQL安装目录的根目录下面,文件名称为 my.ini。(如果没有这个文件,手动在根目录下面创建这个文件,MySQL启动时会自动加载)

linux系统的配置文件,通常为 /etc/my.cnf ,my.cnf就是MySQL的配置文件。

比如修改MySQL的端口,就是在配置文件中修改,然后重启MySQL服务后生效。

通过配置文件修改参数,这种方式就是永久修改,不会因为重启MySQL之类的操作,而丢失修改的内容。

4.配置优先级

参数设置的优先级 session > global > 配置文件

数据库连接参数配置

MySQL中有一些经常用到的参数,对系统的运行非常重要,下面进行说明。

max_connections

代表数据库同时允许的最大允许连接数。

连接有两种常见状态:sleep / query 。
sleep 代表连接处于闲置状态;query 代表连接正处于处理任务的状态;
sleep + query 连接的总量不能超过max_connections的设置值,否则会出现经典错误:"ERROR 1040:Too many connetcions"

Threads

MySQL连接状态

Threads_connected 代表当前已经有多少连接(Sleep+Query)。
Threads_created 代表历史总共创建过多少个数据库连接 。
Threads_running 代表有几个连接正处于"工作"状态,也是目前的并发数。
Threads_cached 共缓存过多少连接.如果我们在MySQL服务器配置文件中设置了。thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。

thread_cache_size

缓存的数据库连接数。

查询当前的缓存数据库连接数

show VARIABLES like 'thread_cache_size';

设置缓存的数据库连接数为80

set global thread_cache_size=80;

通过更改缓存数据库连接数,代表最多允许缓存80个数据库连接,让这80个数据库连接进行不断重用。超出80个的部分,会关闭连接重新创建。

Max_used_connections

历史运行过程中产生的最大数据库连接信息

查询MySQL历史运行过程中最大连接数的数量及对应时间

show status like 'Max_used_connections%';

上面的结果表示在2025-12-16 23:10:40时间点,MySQL的数据库连接数,达到了运行以来最大值,为13个。

通过查询这个值,可以帮助我们来评估数据库连接数应该配置多大是比较合理的。一般情况下,最大数据库连接数要比Max_used_connections值,大20%-50%就可以。

设置最大连接数

方式1:设置GLOBAL参数

set GLOBAL max_connections = 200;

GLOBAL参数在重启MySQL服务后会失效。

方式2:设置配置文件参数

通过配置文件参数的方式是最稳妥的,不会因为重新MySQL服务导致失效。

back_log

设置保存多少数据库请求到堆栈(缓冲区)中。

也就是说,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:
unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时.
show VARIABLES LIKE 'back_log'

看到这个报错,就代表数据库的堆栈已经满了,数据库缓冲区也满了。

查看back_log信息

show VARIABLES LIKE 'back_log';

这151个请求的信息,在连接池满了之后,会被放到堆栈缓冲区中。

wait_timeout和interactive_timeout

这两个参数都是至超过一段时间后,数据库连接自动关闭(默认28800秒,即8小时)
interactive_timeout针对交互式连接,wait_timeout针对非交互式连接。
说得直白一点,通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接。

查询参数值

show VARIABLES LIKE 'wait_timeout';
show VARIABLES LIKE 'interactive_timeout';

查看当前数据库连接详细状况

show processlist;

查询缓存参数配置

待更新

InnoDB性能参数设置

待更新

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 11:25:33

Xiaomi 商城页面布局(部分)

HTML部分&#xff1a;<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><li…

作者头像 李华
网站建设 2026/3/10 9:19:44

运料小车装卸料控制:西门子1200PLC与TP700触摸屏联机仿真博途16

运料小车装卸料控制西门子1200PLC和TP700触摸屏联机仿真博途16最近在车间折腾运料小车的自动化改造&#xff0c;用西门子1200PLC搭了个装卸料控制系统。正好手头有TP700触摸屏&#xff0c;索性在博途V16里搞了个联合仿真&#xff0c;省得去现场调试吃灰。这个方案特别适合产线还…

作者头像 李华
网站建设 2026/3/9 21:12:40

S32K311启动过程中,向量表重定向

在MCU的启动过程中&#xff0c;NXP官方提供的启动代码会对中断向量表进行重定向&#xff0c;将向量表从flash定向到ram。具体实现分析如下。Vector_Table.sSECTION .intvec:DATA:ROOT(2&#xff09;通过这个命令&#xff0c;声明一个.intvec的段&#xff0c;这条指令下面申明的…

作者头像 李华
网站建设 2026/3/6 20:33:17

从蓝图到产线:高效产品信息传递的桥梁建设

在制造业中&#xff0c;研发设计的精妙构思与生产部门的高效执行之间&#xff0c;存在着一条至关重要的信息传递链。这条链路的畅通与否&#xff0c;直接决定了产品能否从图纸精准、准时地转化为合格的商品。本文将深入探讨这一过程的标准实践、常用工具、潜在挑战及其优化方案…

作者头像 李华
网站建设 2026/3/8 0:34:36

时间复杂度

这种题目是数据结构与算法考研&#xff08;如408&#xff09;或面试中的高频送分题&#xff0c;但也是高频陷阱题。 复习这类题目&#xff0c;不要靠“猜”或者“死记硬背”&#xff0c;而是要掌握一套**“数学建模”**的方法。一旦你建立了数学直觉&#xff0c;这类题看一眼就…

作者头像 李华