数据库连接超时The driver has not received any packets from the server

一、问题

今天Linux跑项目的时候,启动tomcat报错提示:

...last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

大概意思就是mysql连接超时。

可能原因是没有设置自动连接,配置超时

二、解决办法

1、使用JDBC URL中使用autoReconnect属性,url追加红色部分内容

jdbc.url=jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false

autoReconnect 超时是否自动连接

ailOverReadOnly  连接是否为只读

2、修改MySQL配置文件vim /etc/my.cnf,在[mysqld]后面添加以下内容(24天=2073600秒)

wait_timeout=2073600

interactive_timeout=31536000

wait_timeout

表示连续多少秒内都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据库会拒绝访问,

wait_timeout默认值为28800(即8小时),这里设置为最大值2073600(即24天)

interactive_timeout=31536000 表示31536000秒内,数据库有交互的,只要达到这个时间,就会连接超时断开。都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据库会拒绝访问,wait_timeout默认值为28800(即8小时),这里设置为31536000(即365天)

数据库连接超时The driver has not received any packets from the server_第1张图片

数据库连接超时The driver has not received any packets from the server_第2张图片

 

 

 

3、重启mysql

#service mysql restart

 

PS>>>文中提到的mysql配置文件

Linux的是my.cnf,存在于/etc/my.cnf或/etc/mysql/my.cnf

不确定的话,在指定目录/etc/查找下配置文件吧

find /etc/ -type f -name 'my.cnf' -printf '%p \n'

 

Windows则是my.ini,存在于安装目录的根目录 ,例如C:\Program Files\MySQL\MySQL Server 5.5\my.ini

 

你可能感兴趣的:(Oracle,Mysql)