正在自学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错误导致。


Logo

大数据从业者之家,一起探索大数据的无限可能!

更多推荐