当前位置: 首页 > 面试题库 >

无法建立与MySQL的JDBC连接(使用Java,IntelliJ和Linux)

祁建明
2023-03-14
问题内容

我在尝试使用以下代码获取数据库连接时遇到问题:

  try {
        Class.forName("com.mysql.jdbc.Driver");
        Properties p = new Properties();
        p.put("user", user_name);
        p.put("password", password);
        connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/jsp_test", p);
    } catch (SQLException ex) {
        // handle any errors
        ex.printStackTrace();
        System.out.println("SQLException: " + ex.getMessage());
        System.out.println("SQLState: " + ex.getSQLState());
        System.out.println("VendorError: " + ex.getErrorCode());
        return false;
    } catch (ClassNotFoundException e) {
        e.printStackTrace();  
    }

输出的错误信息是:

/ usr / lib / jvm / java-6-openjdk / bin / java -Didea.launcher.port = 7532
-Didea.launcher.bin.path = / usr / bin / idea / bin -Dfile.encoding =
UTF-8-类路径/usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/about.jar:/usr/lib/jvm/
java-6-openjdk / jre / lib /
resources.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/management-agent.jar:/ usr
/ lib / jvm / java-6-openjdk / jre / lib /
jsse.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar:
/usr/lib/jvm/java-6-openjdk/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/sunjce_provider.jar:/usr/lib
/jvm/java-6-openjdk/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/dnsns.jar:/home/bedtimes/Java
Projects / db_demo / out / production / db_demo:/opt/java/jre/lib/ext/mysql-
connector-java-5.1.10-bin.jar:/usr/bin/idea/lib/idea_rt.jar
com.intellij。rt.execution.application.AppMain主要com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。
.newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc
com.mysql.jdbc.JDBC4Connection上的ConnectionImpl.createNewIO(ConnectionImpl.java:2214)(com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:781))(JDBC4Connection.java:

成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。
.newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)上的MysqlIO。(MysqlIO.java:343)…
18个其他原因:java.net.ConnectException:java拒绝连接。

成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。SQLState:08S01 VendorError:0

流程结束,退出代码为0

从字面上看,我不知道如何解决此错误消息。该数据库存在。用户名和密码存在。我目前尚未向数据库中添加任何表,但我认为这可能不是问题,因为我毕竟只是建立连接…

如果需要,我可以提供更多信息。我觉得我已经尝试了很多。是否有人知道如何获取有关如何以及为什么失败的更多信息?

谢谢你的帮助!:)


问题答案:

从您的连接字符串中,该数据库应位于本地计算机上。您可以尝试运行此命令以确保套接字已打开以进行连接吗?

远程登录127.0.0.1 3306

并确保它连接?您可能尚未将mysql实例配置为侦听来自此计算机或此接口地址的连接。如果连接失败,则需要修改mysql配置,例如:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-
database-server.html



 类似资料:
  • 问题内容: 我正在尝试从MS AD中检索一些信息:特定分支机构的成员,部门名称,职位等。 我使用了很多示例,包括Apache Directory LDAP API 和UnboundID,但是我无法与AD建立连接。 RDN: 为了进行搜索,我使用以下过滤器: 当我使用中的数据创建目录上下文时,出现异常: 如果未指定密码,则会出现以下异常: 我已验证我的帐户未锁定。 根据常见的活动目录LDAP绑定错误

  • 我在docker中运行了elasticsearch 8.1,其中包含以下docker compose文件: 我正在尝试使用org.elasticsearch.client.RestClient向es集群发出一个简单的GET请求。 请求: Rest客户端初始化: 主要方法: buildClusterHosts()方法正确地构建了一个HttpHost数组(在本例中只有一个),并将其提供给rest客户端

  • 前面介绍了 MySQL 的安装,相信您已经对 MySQL 安装操作有了进一步认识,本小节主要介绍如何在 Windows、Linux 上和 MySQL 建立连接,另外还介绍如何使用 PHP 代码和 MySQL 建立连接。 1. 命令行连接 MySQL 前面介绍了在 Windows 下安装最新版 MySQL 初始化安装步骤,启动 MySQL 服务,记录的初始密码可用于 “root” 账户登录进行相关操

  • 在使用PHP 5.6.3在Ubuntu 14.04上克隆存储库后,我无法运行PHP composer。phar selfupdate都不是php composer。phar更新。我收到以下消息: 我认为问题应该出在我本地拥有的证书上,但我无法想象如何解决它。 这是作曲家。json:

  • 我创建了一个简单的类来测试与我的localhost数据库的通信,这是我用Mysql Workbench创建的。Mysql服务器正在运行。JDBC驱动程序被添加到我的项目的类路径中。 当我运行程序时,我得到以下异常: 线程“main”com.mysql.cj.jdbc.Exceptions.CommunicationsException异常:通信链接失败 最后一个成功发送到服务器的数据包是在0毫秒前

  • 问题内容: 我试图使用JDK 1.8和MySQL Connector / J版本5.1.23安全地连接到Amazon RDS,并且对MySQL Connector / J文档中 的说明感到困惑。 说明说明要在当前目录中创建信任库并导入服务器的CA证书。当我运行以下命令时,系统会要求我输入密码,但我不知道输入什么: 另一方面,Amazon的说明指出证书由证书颁发机构签名。SSL证书包括数据库实例终结