在 Linux 中通过 JAVA 连接 mySQL

Posted

技术标签:

【中文标题】在 Linux 中通过 JAVA 连接 mySQL【英文标题】:Connection with mySQL from JAVA in Linux 【发布时间】:2014-02-23 04:11:26 【问题描述】:

我在从 Java 连接到 mysql 时遇到问题。我正在使用带有 NetBeans 的 Linux,并下载了特定的驱动程序。我在 xampp 中有 mySQL。

我的代码是:

try 
    Class.forName("com.mysql.jdbc.Driver");
    Connection c = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/nombreBaseDatos",
           "user",
           "pass"
     );
 catch (ClassNotFoundException ex) 
    Logger.getLogger(BD1.class.getName()).log(Level.SEVERE, null, ex);
 catch (SQLException ex) 
    Logger.getLogger(BD1.class.getName()).log(Level.SEVERE, null, ex);

我得到的错误是这样的:

com.mysql.jdbc.CommunicationsException:通信链接失败 由于潜在的异常:

** 开始嵌套异常 **

java.net.ConnectException MESSAGE: Conexión rehusada

堆栈跟踪:

java.net.ConnectException: Conexión rehusada at java.net.PlainSocketImpl.socketConnect(Native Method) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:579) 在 java.net.Socket.connect(Socket.java:528) 在 java.net.Socket.(Socket.java:425) 在 java.net.Socket.(Socket.java:241) 在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:271) 在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 在 com.mysql.jdbc.Connection.(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:215) 在 bd.pkg1.BD1.main(BD1.java:25)

** 结束嵌套异常 **

最后一个发送到服务器的数据包是 1 毫秒前。在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2847) 在 com.mysql.jdbc.Connection.(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:215)

有人可以帮我建立这种联系吗?

【问题讨论】:

【参考方案1】:

这表明 MySql 不接受 localhost:3306 的连接

是这样吗?做个简单的

telnet localhost 3306 

连接到您机器上的接收端口?您需要configure MySql 进行此类连接吗?

【讨论】:

我尝试了相同的代码与另一个连接字符串,如“jdbc:mysql://localhost/nombreBaseDatos”,错误是一样的 按照 Brian 的建议:您的 MySQL 服务器不接受给定端口上的连接。也许它没有启动,或者有防火墙阻止您连接。

以上是关于在 Linux 中通过 JAVA 连接 mySQL的主要内容,如果未能解决你的问题,请参考以下文章

在Nginx中通过phpmyadmin将20mb SQL文件导入MySQL时,“连接已重置”

在 PHP 中通过 SSH 连接到 MySQL 服务器

在 Linux 中通过 Socket 发送数据而没有连接时崩溃

在vscode中通过sql toos连接mysql时看不到数据库中的表

jmeter中通过jdbc方式连接mysql数据库的配置参考

在 PHP 中通过 SSH 连接到 MySQL