正在自学java中,目前在学习到数据库时,在用java驱动连接到数据库出现如下报错,网上搜了一下,发现并不能解决,其实像这类报错具有很多种可能,每个人的方法都只能作为参考,要完全解决问题,还是要不断尝试,我的方法仅供参考。
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
排错步骤:
1、因为首先是要键入 url: 数据库地址 jdbc:mysql://连接主机IP:端口号//数据库名字 以及用户名和密码的。主机IP理所当然的输入localhost(以为就是这个)。我先排除了用户名和密码没问题。
2、然后服务器已启动了,没问题。
3、网上盛传的回收空闲连接导致,但是有一点要注意,如果你是开始连接后,后面突然连接不上,那么这个情况极有可能是这样。因为Mysql数据库将连接等到时间设置为8小时,也就是2880秒(在mysql> show global variables like 'wait_timeout'; 中查看 )。所以在超长等待后关闭了连接。
基于我是第一次连接所以这个问题是不存在的。
4、最后在使用的软件SQLyog中,在工具一栏,选择用户管理,发现我的主机IP居然写的是 ‘%’!!!
然后下拉菜单栏发现主机IP还有 hostlocal 以及 127.0.0.1
悲催的是我发现修改hostlocal 失败。Operation RENAME USER failed for 'root'@'%'
然后尝试在程序中把数据库地址的主机地址 改成 %,保持一致, 仍然失败,同样的报错。
在软件中将主机IP修改成 127.0.0.1, 修改成功!
然后再把程序中主机地址改成 127.0.0.1,
居然编译通过了!!!
这是本人第一次连接遇到的问题,大家可以试一试!!
有点要注意的是我在连接报错时,连接时间很短就立刻返回报错。所以这类情况极有可能是主机IP错误导致。