求大神抽时间看看,java连接本地mysql数据库出现connection reset错误

小弟弄这个小问题弄了好久,通过各种渠道找方法最后实在是没有办法了,望大神抽时间帮忙看看,谢谢
代码如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class MysqlConnection {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
Connection con=DriverManager.getConnection(url, "root","");
Statement stmt=con.createStatement();
String sql="select * from msg";
boolean m=stmt.execute(sql);
if(m){
System.out.println("succ");
}else
System.out.println("false");
} catch (ClassNotFoundException e) {

                            e.printStackTrace();
                } catch (SQLException e) {

                            e.printStackTrace();
    } 
}

}
出现如下错误:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Connection reset

STACKTRACE:

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:105)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:148)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:176)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1899)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:481)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:964)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2544)
at com.mysql.jdbc.Connection.(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:264)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.iotek.mysql.MysqlConnection.main(MysqlConnection.java:16)

** END NESTED EXCEPTION **

Last packet sent to the server was 27 ms ago.
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:552)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:964)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2544)
at com.mysql.jdbc.Connection.(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:264)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.iotek.mysql.MysqlConnection.main(MysqlConnection.java:16)

9个回答

看下你的防火墙是不是阻止了3306端口,或者你的mysql没有运行起来。

(MysqlConnection.java:16)
这一行有错误
Connection con=DriverManager.getConnection(url, "root","");
你的没设置密码 url, "root","" 的“”为空?

qq_29713359
qq_29713359 密码我是设置为空的
接近 4 年之前 回复

1.密码不对
2.网不通
3.数据库没启动

我的mysql的密码是没有设置的, mysql的服务是启动了的 ,好心累整个人都被这个问题弄昏了

控制台输出之前,先把数据库连接关闭

aline200
aline200 回复qq_29713359: stmt.close();con.close()
接近 4 年之前 回复
qq_29713359
qq_29713359 怎么理解把数据库连接关闭??难道是关闭数据库吗???
接近 4 年之前 回复

先用本地的可视化工具连接一下,看是否连接成功

qq_29713359
qq_29713359 我用Navicat for MySQL可以连接到mysql数据库,用eclipse就不能连了
接近 4 年之前 回复

不对啊。这个错误 不应该在这里出现
java.net.SocketException
MESSAGE: Connection reset
STACKTRACE:
java.net.SocketException: Connection reset
这个错误是java.net.*包里的,而且是在网络编程的时候才会出现的异常,使用数据库时没有用到套接字啊,--------怎么会报这个错!!!

你是不是之前的程序运行的有网络编程的工程,直接点击那个“运行按钮”运行。
确保运行的是本次的程序,,,刚才看了上面的代码,如果驱动配置没问题,应该没错

qq_29713359
qq_29713359 我是直接点击运行按钮运行的,每次都是出现这种错误,我按照自己安装mysql数据库的方法及用eclipse连接数据库,在其他电脑
接近 4 年之前 回复

直接点击那个按钮的,在其他电脑上按照自己的方法安装及连接数据库都是可以的,在自己的电脑上就不能连接了

localhost换成127.0.0.1试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐