当前位置: 代码网 > it编程>数据库>Mysql > 宝塔面板MySQL配置修改及验证步骤

宝塔面板MySQL配置修改及验证步骤

2026年04月07日 Mysql 我要评论
问题现象通过宝塔面板自带的mysql,创建数据库,项目连接,或者本地数据库客户端连接,时不时出现连接超时中断。问题根因通过检查mysql配置发现:net_read_timeout = 30 (30秒)

问题现象

通过宝塔面板自带的mysql,创建数据库,项目连接,或者本地数据库客户端连接,时不时出现连接超时中断。

问题根因

通过检查mysql配置发现:

  • net_read_timeout = 30 (30秒) - 这是问题的根源!
  • mysqlx_read_timeout = 30 (30秒)

这两个参数导致mysql服务器在30秒内没有读取到完整的数据包就会超时断开连接,这就是应用报 sockettimeoutexception: read timed out 的原因。

宝塔面板修改步骤

方法一: 通过宝塔面板图形界面修改 (推荐)

步骤1: 登录宝塔面板

访问宝塔面板管理地址,使用管理员账号登录。

步骤2: 进入mysql管理

  1. 点击左侧菜单 “数据库”
  2. 找到mysql服务,点击 “设置”“配置修改”
  3. 或者点击 “软件商店” → 找到 “mysql” → 点击 “设置”

步骤3: 修改配置文件

  1. 在mysql设置界面,点击 “配置修改”“my.cnf”
  2. 在配置文件中找到 [mysqld] 部分
  3. 查找并修改以下参数:
[mysqld]
# 网络读取超时 - 从30秒改为300秒(5分钟)
net_read_timeout = 300
# 网络写入超时 - 保持或增大
net_write_timeout = 600
# x协议读取超时 - 从30秒改为300秒
mysqlx_read_timeout = 300
# x协议写入超时 - 可选优化
mysqlx_write_timeout = 300
# 连接超时 - 可选优化,从10秒改为30秒
connect_timeout = 30

步骤4: 保存并重启mysql

  1. 点击 “保存”
  2. 回到mysql管理界面
  3. 点击 “重启”“服务”“重启”
  4. 等待重启完成(通常10-30秒)

步骤5: 验证配置

重启后,可以在mysql管理界面执行sql验证:

show variables like 'net_read_timeout';
show variables like 'net_write_timeout';
show variables like 'mysqlx_read_timeout';

应该显示:

  • net_read_timeout: 300
  • net_write_timeout: 600
  • mysqlx_read_timeout: 300

方法二: 通过ssh命令行修改 (备选)

如果宝塔面板界面不好操作,可以通过ssh:

# 1. ssh连接服务器
# 2. 编辑mysql配置文件
vi /etc/my.cnf
# 或
vi /www/server/mysql/etc/my.cnf
# 3. 在[mysqld]部分添加或修改
[mysqld]
net_read_timeout = 300
net_write_timeout = 600
mysqlx_read_timeout = 300
# 4. 保存并退出 (:wq)
# 5. 重启mysql
/etc/init.d/mysqld restart
# 或通过宝塔命令
bt restart mysqld

配置说明

关键参数解释

参数当前值建议值说明
net_read_timeout30秒300秒核心参数: 服务器等待客户端发送数据的超时时间
net_write_timeout600秒600秒服务器发送数据到客户端的超时时间(已合理)
mysqlx_read_timeout30秒300秒x协议读取超时,与net_read_timeout同步
mysqlx_write_timeout60秒300秒x协议写入超时,可选优化
connect_timeout10秒30秒连接建立超时,可选优化
wait_timeout28800秒28800秒空闲连接超时(8小时),已合理
interactive_timeout28800秒28800秒交互式连接超时(8小时),已合理

为什么是300秒?

  • 与应用配置匹配: 应用的 sockettimeout=300000(5分钟)
  • 留有余地: 300秒 > 应用需求,确保数据库不会先超时
  • 不会太大: 避免僵尸连接占用资源过久

修改后的验证步骤

1. 重启spring boot应用

修改mysql配置并重启后,重启你的spring boot应用:

# 停止应用
# 启动应用

2. 观察日志

应用启动后,观察日志30分钟:

成功标志:

  • 没有 communicationsexception
  • 没有 sockettimeoutexception
  • 连接池正常工作

仍有问题:

  • 继续出现超时错误 → 检查其他网络问题

3. 压力测试(可选)

使用jmeter或其他工具进行压力测试,确保高并发下连接稳定。

常见问题

q1: 修改配置后mysql无法启动?

a: 检查配置语法是否正确,确保 = 两边有空格,没有多余符号。

q2: 找不到配置文件?

a: 宝塔的mysql配置文件通常在:

  • /etc/my.cnf
  • /www/server/mysql/etc/my.cnf
  • /etc/mysql/my.cnf

q3: 修改后仍然超时?

a:

  1. 确认mysql已重启: systemctl status mysqld
  2. 确认配置已生效: 执行 show variables like 'net_read_timeout';
  3. 检查防火墙: 确保3306端口没有额外的超时限制

q4: 影响现有连接吗?

a: 修改配置需要重启mysql,会短暂断开现有连接。建议在低峰期操作,或提前通知使用者。

q5: 这个配置会影响性能吗?

a: 不会。net_read_timeout 只是超时时间,不会影响正常的查询性能,只是让慢查询或网络不稳定时更有容忍度。

其他优化建议(可选)

如果数据库访问仍然不稳定,可以考虑:

  1. 增大连接数上限 (如果连接数经常打满):
max_connections = 500
  1. 优化缓冲区大小:
max_allowed_packet = 64m
innodb_buffer_pool_size = 2g  # 根据服务器内存调整
  1. 启用慢查询日志,定位性能瓶颈:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

总结

必须修改的参数:

  • net_read_timeout = 300
  • mysqlx_read_timeout = 300

修改这两个参数后重启mysql,应该就能彻底解决连接超时问题。

到此这篇关于宝塔面板mysql配置修改及验证步骤的文章就介绍到这了,更多相关宝塔面板mysql配置修改内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com