java - MySQL : Communication Link failure error and telnet localhost 3306 : Connection close

标签 java mysql jdbc

我正在尝试使用 Java 连接 MYSQL 数据库,而我的 SQL 数据库位于本地主机上。 我面临着一些关于通信链路故障的问题。

public testfile() throws ClassNotFoundException, SQLException{

        Connection connection = null;
        try{
        Class.forName("com.mysql.jdbc.Driver").newInstance(); 
        connection = DriverManager.getConnection("jdbc:mysql://localhost/rts?user=root&password=password");
        System.out.println("Connected");
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if(connection != null)
                connection.close();
        }
}

堆栈跟踪:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException
MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
    at java.net.Socket.connect(Socket.java:546)
    at java.net.Socket.connect(Socket.java:495)
    at java.net.Socket.<init>(Socket.java:392)
    at java.net.Socket.<init>(Socket.java:235)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:620)
    at java.sql.DriverManager.getConnection(DriverManager.java:222)
    at test.testfile.<init>(testfile.java:18)
    at test.mainfile.main(mainfile.java:9)


** END NESTED EXCEPTION **



Last packet sent to the server was 1 ms ago.
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:620)
    at java.sql.DriverManager.getConnection(DriverManager.java:222)
    at test.testfile.<init>(testfile.java:18)
    at test.mainfile.main(mainfile.java:9)

远程登录输出:

telnet localhost 3306 
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

包/软件信息:

  • 面向 Web 开发人员的 Eclipse Java EE IDE。
  • 版本:Helios Service Release 1。
  • JDK6
  • 连接器/J 版本 5.0.8
  • Ubuntu:Ubuntu 10.04 LTS——清醒山猫

我已经尝试了一些东西,但它不起作用:

  • 我在 my.cnf 中更改了端口但没有效果,我更改为 3312 同样的错误重复出现,telnet显示如下:

    shreya@shreya-laptop:~$ telnet localhost 3306
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Connection refused
    shreya@shreya-laptop:~$ telnet localhost 3312
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    Connection closed by foreign host.
    

    nmap 输出:

    shreya@shreya-laptop:~$ nmap localhost -p 3306
    
    Starting Nmap 5.00 ( [url]http://nmap.org[/url] ) at 2011-03-31 09:45 IST
    Interesting ports on localhost (127.0.0.1):
    PORT     STATE  SERVICE
    3306/tcp closed mysql
    
    Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
    shreya@shreya-laptop:~$ nmap localhost -p 3312
    
    Starting Nmap 5.00 ( [url]http://nmap.org[/url] ) at 2011-03-31 09:45 IST
    Interesting ports on localhost (127.0.0.1):
    PORT     STATE SERVICE
    3312/tcp open  unknown
    
    Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
    
  • 我尝试将条目放入 hosts.allow 但没有效果

  • 我试过重新安装 mysql。通过 mysql 提示符和 c 程序插入数据可以完美运行,但不能通过 java 代码插入。

  • 我尝试在 ip 表中添加规则仍然没有帮助

  • 我尝试了不同的 url 字符串组合。我也试过不同版本的 eclipse 和 Connector/J jar 文件(最新的 5.1.15)

最佳答案

首先使用程序中使用的相同凭据尝试使用 MYSQL 命令行客户端 连接到 MySQL。

关于java - MySQL : Communication Link failure error and telnet localhost 3306 : Connection close,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495341/

相关文章:

java - 如何将 Spring Web 应用程序上传到 cPanel?

mysql - 如何为 2 个 SQL 查询创建一个 MySQL 索引?

amazon-web-services - AWS Glue to Redshift : Is it possible to replace, 更新还是删除数据?

Java得到正确答案+ boolean 重复的最终分数

java - 获取 HttpServletRequest 响应地址

mysql - 具有特定条件的 VIEW SQL 上的三个表的 JOIN 和 SUM

带有 CONTAINS 查询的 Java 准备语句

java - JDBC 的executeBatch() 是并行执行语句还是一个接一个地执行语句

java - 使用自定义消息捕获和处理 Jackson 异常

mysql - 迁移处理不支持的类型