在 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时,“连接已重置”
在 Linux 中通过 Socket 发送数据而没有连接时崩溃
在vscode中通过sql toos连接mysql时看不到数据库中的表