求解决java中用jdbc方式连接mysql数据库的问题,错误异常如下:(解决后再加分)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解决java中用jdbc方式连接mysql数据库的问题,错误异常如下:(解决后再加分)相关的知识,希望对你有一定的参考价值。

Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: 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 com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:573)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1044)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at wahack.visable.jdbcQuery.ConnectionODBC(jdbcQuery.java:20)
at wahack.visable.jdbcQuery.main(jdbcQuery.java:12)

** END NESTED EXCEPTION **

Last packet sent to the server was 0 ms ago.

STACKTRACE:

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 com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:573)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1044)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at wahack.visable.jdbcQuery.ConnectionODBC(jdbcQuery.java:20)
at wahack.visable.jdbcQuery.main(jdbcQuery.java:12)

** END NESTED EXCEPTION **
代码:import java.sql.*;
public class jdbcQuery

public static void main(String[] args)


try

Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://192.168.223.54:1433/saleSystem","sa","password");
con.close();

catch(Exception e)

System.out.println(e.getMessage());


参考技术A 你这个语句什么都没做,报这个异常是不是数据库连接超时了啊。还有你追问的图不是MYSQL貌似是SQL server 。想用MYSQL建议你下载并安装MYSQL 参考技术B 就是你使用的是 SQLserver数据库,但是数据库连接是 mysql的 dbc:mysql://192.168.223.54:1433/saleSystem 参考技术C 我了个去,你起的是SQLServer,为啥你用MYSQL包连接呢????追问

菜鸟我不懂,求解释

追答

你给1楼的图片中我看你起的是微软的SQLServer2000
根本不是MYSQL数据库
根本不是一个概念

追问

怎么解决?我刚学数据库,要启用mysql数据库?

追答

你直接连SQLServer得了
http://zhidao.baidu.com/question/79643275.html?an=0&si=7
去下SQLServer的驱动
照着上面的连

本回答被提问者采纳
参考技术D mysql服务没起来哦。追问

这样不是表示mysql服务已启动了吗?

追答

哥,你不是说是mysql吗,怎么给了sql server的服务图片

追问

是我搞错了。已解决,谢谢

第5个回答  2012-04-06 mysql配置成功了么?
把代码贴出来看看追问

mysql服务、TCP/IP协议已启动,还要怎么配置?代码在问题补充里

追答

监听接口打开了吗?如果数据库没监听也不行
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectJDBC
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";//驱动jar包
public static final String DBURL = "jdbc:mysql://localhost:3306/DatabaseName";//数据库地址及DatabaseName名称
public static final String DBUSER = "root";//数据库账号
public static final String DBPASS = "mysqladmin";//数据库密码
private Connection conn = null;

public Connection getConn()
try
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
catch (SQLException e)
e.printStackTrace();
catch (ClassNotFoundException e)
e.printStackTrace();

return conn;


public void closeConn()
if (conn != null)
try
conn.close();
catch (SQLException e)
e.printStackTrace();




这就是一个连接数据库的,自己先测试一下 如果没有报错,就说明连接成功了

我晕,楼主的是SQL Server的嘛,你怎么说是mysql = =!
SQL Server 和mysql完全不是同一个 我在给你一个连接SQL Server的
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectJDBC
public static final String DBDRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//驱动jar包
public static final String DBURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=";//数据库地址及DatabaseName名称
public static final String DBUSER = "sa";//数据库账号
public static final String DBPASS = "";//数据库密码
private Connection conn = null;

public Connection getConn()
try
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
catch (SQLException e)
e.printStackTrace();
catch (ClassNotFoundException e)
e.printStackTrace();

return conn;


public void closeConn()
if (conn != null)
try
conn.close();
catch (SQLException e)
e.printStackTrace();



本人初学java,学到JDBC那块需要连接Mysql数据库但是不知道如何配置mysql驱动程序?求帮忙配置一下。

本人没有用IDE工具,我用的editplus编写的JDBC程序,dos下运行的,但是运行有错,错误如下:
---------- 运行java程序 ----------
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at JDBCTest.main(JDBCTest.java:9)
输出完成 (耗时 0 秒) - 正常终止
肯定是找不到驱动程序了,但是不知道如何在电脑上配置MYSQL驱动程序。

原因是你的Mysql的驱动包没有被加载,由于你是在cmd下用java命令来执行的,所以没有挂载jar包,正确的方法如下:

java -cp xx.jar MainClass

其中xx.jar就是你的mysql的驱动jar包,MainClass就是你要执行的java类


写程序是个体力活,别太劳累,注意劳逸结合,累了去看看笑话http://www.bxjhw.com,希望能帮到你

追问

我可以配置环境变量来自动加载JAR么?

追答

可以,那就把你的jar包放到jre的lib目录里面吧

参考技术A 你用editplus编写的代码可能是引入了jar包 mysql的jar包,这个jar包里面有很多类,有何Driver的类,你代码里面需要这个类来连接数据库,dos下你吧jar包房子你代码同一目录下使用命令:java -cp mysql*.jar MainClass编译 参考技术B 缺少 mysql的jar包

以上是关于求解决java中用jdbc方式连接mysql数据库的问题,错误异常如下:(解决后再加分)的主要内容,如果未能解决你的问题,请参考以下文章

诡异,java连接sql中 distinct 不生效,jdbc方式连接,用的是2000的数据库

本人初学java,学到JDBC那块需要连接Mysql数据库但是不知道如何配置mysql驱动程序?求帮忙配置一下。

Servlet JDBC中用数据源,连接池连接mysql时的问题

求jdbc数据库连接的问题

用jdbc连接oracle数据库,现在要实现数据的更新操作,在java web 项目里,求大神简单讲解下,再给出点代码

java 备份mysql数据库的部分数据