本人是一个新手,随便写了一个jdbc小程序来连接mysql数据库,可是调试了很多次总是出现了一个很怪异的异常,异常信息如下:
Exception in thread "main" com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2641)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at cn.itcast.jdbc.JdbcUtils.getConnection(JdbcUtils.java:33)
at cn.itcast.jdbc.Base.template(Base.java:33)
at cn.itcast.jdbc.Base.main(Base.java:23)
** END NESTED EXCEPTION **
Last packet sent to the server was 11 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2707)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at cn.itcast.jdbc.JdbcUtils.getConnection(JdbcUtils.java:33)
at cn.itcast.jdbc.Base.template(Base.java:33)
at cn.itcast.jdbc.Base.main(Base.java:23)
不知道这是什么原因所造成的,在google上也搜了很多,可是没有找到恰当的解决方案,请各位牛人帮忙看一下。我通过Mysql Query可以连接到mysql的数据库。应该是在建立连接的时候出现了问题。
等待。。。
http://stenlylee.iteye.com/blog/347003
这个基本上很可能是驱动版本的问题,上面blog里说是因为连接字符串写成localhost的原因,改成127.0.0.1就好了,基本就这两歌可能了,先试试改成127.0.0.1,不行就换歌jar包
代码呢,不看过不知是什么问题,或者MYSQL本身就有问题,,防火墙等
这个应该是mysql的连接断了造成的。楼主是不是偶尔能连偶尔报错了?
1.看看mysql服务是否开启
2.检查驱动版本,换到最新版本的驱动程序试验一下。
3.看看你的mysql版本是几点几?一般现在都是5.0以上把