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

测试显示问题解决了。

时间: 2024-09-18 23:00:54

MYSQL连接超时问题解决办法的相关文章

php中Memcached连接超时问题解决办法

在一次例行检查日志的时候,发现Nginx日志中出现了大量的PHP连接Memcached超时的报错信息,如下: PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110) in ... 连上服务器检查Memcached进程运行正常,然后我用一段测试代码检查Memcached是否能够正常连接,结果也很正常. 于是又仔细分析日志,发现那段报错信息是间隔出现的,说明是有一定几

SSH会话连接超时问题解决办法

方法一, 如果显示空白,表示没有设置, 等于使用默认值0, 一般情况下应该是不超时. 如果大于0, 可以在如/etc/profile之类文件中设置它为0. 使用命令直接用户修改配置文件,设置"TMOUT=180",即超时时间为3分钟 #vim /etc/profile 添加下面两行 #设置为3分钟  代码如下 复制代码 TMOUT=180 方法二, 启用putty keepalive putty -> Connection -> Seconds between keepal

MySQL远程连接丢失问题解决办法

具体的解决步骤如下,希望能帮助遇到同样问题的同学们: 找到并修改my.cnf文件.在不同的Linux系统下,my.cnf放在不同的位置.这里以Ubuntu Server做示例,其他系统请根据情况自行找到my.cnf的路径.一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下. 首先用vim打开my.cnf: vim /etc/mysql/my.cnf 看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:(在文字之前加上#号即可) bind-address = 1

常见php与mysql中文乱码问题解决办法_Mysql

乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号. 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少个?号. 原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字. 解决方法: 1.网页文件head设置编码<meta http-equiv="Content-Type" content="text/html; cha

基于ORA-12170 TNS 连接超时解决办法详解_oracle

1.开始----程序-----oracle------配置和移植工具-----Net Manager----本地----服务命名---ora11(这个是我的专用服务器) 把右边下面的主机名改成192.168.1.102 2.开始----程序-----oracle------配置和移植工具-----Net Manager----本地----监听程序---同样把右边下面的主机名改成192.168.1.102 重新连接又报了另一个错误 ora-12541:TNS:没有监听器1.cmd---servic

MySql中文乱码问题解决办法

方法一,有服务器管理权限的修改方法 查看数据库各级别字符集支持  代码如下 复制代码 mysql> SHOW VARIABLES LIKE character_set_%'; mysql> SHOW VARIABLES LIKE collation_%'; 修改my.ini文件,通常只需要修改客户端和服务端的编码就可以了, 找到并修改:  代码如下 复制代码 客户端:default-character-set=utf8 服务端:character-set-server=utf8 如果是gb23

Can t connect to MySQL server 常见问题解决办法

连接数据库教程的时候显示Can't connect to MySQL server (10060),基本可以按照以下思路进行排查: 1. 网络不通.     检查能不能ping通. 2. 防火墙设置.     防火墙是否放过mysql教程的进程,是否屏蔽了mysql的3306端口. 3. mysql的账户设置.     mysql账户是否不允许远程连接.如果无法连接可以尝试以下方法:     mysql -u root -p    //登录MySQL     mysql> GRANT ALL P

智能手机无法连接电脑问题解决办法

一,手机数据线连接电脑,手机上提示"主机无反应"怎么办? 原因:这是因为你使用的是电脑连接出来的USB接口接线或者机箱前置的USB接口,试一试用机箱后面的USB接口. 二,手机连接电脑,选择了"数据存储"手机会提示"另一个程序正在使用". 原因:这是因为你的手机使用了内存卡里的主题或者铃声,解决办法当然是把主题等放到手机存储里了.要不用手机C盘的主题. 三,使用手机资源管理器(MMMB)无法读取手机A盘. 原因:首先最小白的一个错误就是你没安装P

ubuntu12.04 mysql 无法启动问题解决办法

一,权限问题导致mysql无法启动,在linux中权限是个很重要的东西,所以大多数据mysql无法启动都与 权限有问题 错误提示 World-writable config file '/opt/lampp/etc/my.cnf' is ignored [ERROR] Fatal error: Can't change to run as user 'mysql' ; Please check that the user exists! 昨天的的xampp问题集锦中,已经解决了一些问题,不过今天