教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 MYSQL连接超时问题解决办法

MYSQL连接超时问题解决办法

发布时间:2023-05-02   编辑:jiaochengji.com
教程集为您提供MYSQL连接超时问题解决办法等资源,欢迎您收藏本站,我们将为您提供最新的MYSQL连接超时问题解决办法资源
在mysql中连接超时多半是服务器处理不过来或我们mysql数据参数没配置好或程序本身有问题,下面我来给大家介绍一些解决MYSQL连接超时问题方法,希望对各位同学会有点帮助哦。

 程序后台报这个错误 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2332) ,** END NESTED EXCEPTION ** Last packet sent to the server was 34 ms ago.

这个问题主要原因是应用服务器很长时间没有连接mysql,超过了mysql设置的最大超时时间,再连接mysql就会出现这个问题。

mysql默认设置是8小时,一般网站白天都有人访问,从夜里到早上一般都会超过8小时,所以再来访问就会这个问题。

简单的解决办法就是修改最大超时时间,比如改为12小时或10小时,这样恰好避免了无人访问的时段,这里修改为10小时,方法如下:

看来下 wait_timeout 才15真不是一般的短,系统默认安装的就是麻烦.


打开MySQL的控制台,运行:show variables like ‘%timeout%’,查看和连接时间有关的MySQL系统变量

设置下即可

 代码如下 复制代码

mysql> show variables like ‘%timeout’;

—————————- ——-
| Variable_name | Value |
—————————- ——-
| connect_timeout | 15 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 15 |
—————————- ——-
10 rows in set (0.00 sec)

直接设置wait_timeout 时长

 代码如下 复制代码

mysql> set wait_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> set interactive_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%timeout’;


—————————- ——-
| Variable_name | Value |
—————————- ——-
| connect_timeout | 15 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 36000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 36000 |
—————————- ——-
10 rows in set (0.00 sec)


本人觉得最简单的办法,就是对症下药:既然问题是由mysql5的全局变量wait_timeout的缺省值太小引起的,我们将其改大就好了。

查看mysql5的手册,发现对wait_timeout的最大值分别是24天/365天(windows/linux)。以windows为 例,假设我们要将其设为21天,我们只要修改mysql5的配置文件“my.ini”(mysql5 installation dir),增加一行:

[mysqld]

 代码如下 复制代码

wait_timeout=31536000
interactive_timeout=31536000

 

 

需要重新启动mysql5。

linux系统配置文件:/etc/my.cnf

测试显示问题解决了。

您可能感兴趣的文章:
php连接mysql超时的解决方法
mysql连接超时问题的解决办法
修改mysql的超时设置
MySQL sleep进程连接过多卡住了问题解决办法
mysql查询超时问题的实例分析
mysql远程连接无法打开 解决mysql无法打开远程连接的问题
mysql sleep连接过多的解决方法
mysql数据库8小时无连接自动关闭的解决方法
查询mysql编码以及解决mysql乱码问题
asp.net连接数据库超时的解决办法

[关闭]
~ ~