【问题描述】
今天访问部署在Linux上Tomcat一直运行的应用时,发现报错了,查看Tomcat日志大致报错信息提示
...last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
通过学习,了解到我引发这个问题的原因是Tomcat运行的应用与MySQL服务器的连接断开了,此时发起任何访问数据库的请求,都会报上面的提示信息~
我个人的解决方案是通过参数配置(增大连接超时时间wait_timeout的值)~
参数配置
这里分析整理后分享出来,希望对遇到这个问题的小伙伴也有帮助,进入正文~
目录
一、交互式与非交互式连接
1.1 交互式连接
指的是客户端连接,连接到MySQL服务器,且客户端连接都带有重连机制(断开后操作SQL会自动连接)
(1)指令连接
终端命令行执行连接指令,即可连接到mysql服务器。
$ mysql -hlocalhost -p3306 -uroot -p
或
$ mysql -uroot -p
Enter password:
(2)工具连接
例如navicat,虽然一个数据库管理工具,但连接MySQL时,其内部也是封装了客户端连接的指令。
mysql -h$ip -P$port -u$user -p
1.2 非交互式连接
指的是非客户端连接,例如应用程序创建连接池、JDBC连接~
本文开头提到我的应用访问MySQL引起的报错,指的就是非交互式连接断开