JDBC连接mysql时,连接不上,但是可以连接oracle

TOMSCUT 2015-10-07 08:55:12
错误提示:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2120)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.atguigu.jdbc.JDBCTest.getConnection2(JDBCTest.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2043)
... 35 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
... 36 more



代码:
package com.atguigu.jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.Properties;

import org.junit.Test;


@SuppressWarnings("unused")
public class JDBCTest {

@Test
public void getConnection2() throws Exception{
//1. 准备连接数据库的 4 个字符串.
//1). 创建 Properties 对象
Properties properties = new Properties();

//2). 获取 jdbc.properties 对应的输入流
InputStream in =
this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");

//3). 加载 2) 对应的输入流
properties.load(in);

//4). 具体决定 user, password 等4 个字符串.
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String jdbcUrl = properties.getProperty("jdbcUrl");
String driver = properties.getProperty("driver");

//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
Class.forName(driver);

//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接.
DriverManager.getConnection(jdbcUrl, user, password);
}
}


JDBC.properties:

#driver=oracle.jdbc.driver.OracleDriver
#jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
#user=scott
#password=oracl

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/root
user=root
password=java


我是个新手,检查了URL和driver,好像没有问题啊!请大家帮帮忙,看是什么问题,谢谢各位大神!
...全文
499 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Usher丶AckMan 2016-01-14
  • 打赏
  • 举报
回复
以防万一,下次把jdbc,mysql,oracle的包都导入到项目中..
效林少爷 2016-01-14
  • 打赏
  • 举报
回复
mysql jar包没有啊
  • 打赏
  • 举报
回复
引用 13 楼 qq_29829081 的回复:
[quote=引用 9 楼 灰蛋一个的回复:]大神 jdbc4.jar链接mysql。。。能连上才怪。。jar包不对 。。
只怪当初太年轻![/quote] 大神还是新手啊
TOMSCUT 2016-01-08
  • 打赏
  • 举报
回复
大神一语惊醒梦中人!最后系统地学习了之后,发现就是没有导包!
TOMSCUT 2016-01-08
  • 打赏
  • 举报
回复
引用 9 楼 灰蛋一个的回复:
大神 jdbc4.jar链接mysql。。。能连上才怪。。jar包不对 。。
只怪当初太年轻!
南猿北辙 2015-10-10
  • 打赏
  • 举报
回复
哥们 jdbc连接mysql的相关jar包导了没
im_thirteen 2015-10-10
  • 打赏
  • 举报
回复
你的本地服务开了没?
灰蛋一个 2015-10-09
  • 打赏
  • 举报
回复
大神 jdbc4.jar链接mysql。。。能连上才怪。。jar包不对 。。
TOMSCUT 2015-10-09
  • 打赏
  • 举报
回复
引用 3 楼 weifen234的回复:
你驱动和url都是交接Oracle,你用这个去连接MySQL怎么可能成功????
那个配置文件当中有一个是mysql。连接时我把oracle的就注释了。
TOMSCUT 2015-10-09
  • 打赏
  • 举报
回复
引用 5 楼 qq_20062767的回复:
jdbcUrl=jdbc:mysql://localhost:3306/root ====》》》 这个root是你的mysql数据库吗?如果不是的话,连接会出错的,把root改为你在mysql里面创建的数据库名称
root是我的用户名。应该是数据库名称?我试试,谢谢您!
TOMSCUT 2015-10-09
  • 打赏
  • 举报
回复
引用 2 楼 panzhixiong_cn的回复:
直接hibermate吧,现在公司里没有用jdbc连数据库了。
我还是个菜鸟,刚刚接触,想从基础学起。非常感谢您的回答!
panzhixiong_cn 2015-10-08
  • 打赏
  • 举报
回复
直接hibermate吧,现在公司里没有用jdbc连数据库了。
qq_20062767 2015-10-08
  • 打赏
  • 举报
回复
jdbcUrl=jdbc:mysql://localhost:3306/root ====》》》 这个root是你的mysql数据库吗?如果不是的话,连接会出错的,把root改为你在mysql里面创建的数据库名称
nyxiaobin123 2015-10-08
  • 打赏
  • 举报
回复
你先确认下mysql数据库服务是不是好的吧,还有网络
weifen234 2015-10-08
  • 打赏
  • 举报
回复
你驱动和url都是交接Oracle,你用这个去连接MySQL怎么可能成功????
  • 打赏
  • 举报
回复
jdbcUrl=jdbc:mysql://localhost:3306/root 改成 jdbcUrl=jdbc:mysql://localhost:3306:root 试试

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧