无法连接MySQL / Eclipse / iText最后一个错误:java.sql.SQLNonTransientConnectionException

时间:2018-05-14 01:16:36

标签: java mysql

我正在尝试使用Eclipse连接到我的数据库,只是为了尝试在PDF中生成一些值。我正在使用外部库iText,它在项目的“Referenced Libraries”文件夹中导入。代码:

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.*;

public class GeneratePDF {

    public static void main(String[] args) {
        try {
            String file_name = "E:\\Programas\\mypdf.pdf";
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(file_name));
            document.open();

            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "a1s2d3f4g5");
            System.out.println("Connection called");

            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from codes");

            while (rs.next()) {
                Paragraph para = new Paragraph(rs.getString("sl_no") + " " + rs.getString("name"));
                document.add(para);
                document.add(new Paragraph(" "));
            }
            con.close();
            document.close();
        } catch (DocumentException | FileNotFoundException | SQLException | ClassNotFoundException e) {
            System.out.println("Wrong: " + e);
        }
    }
}

对我而言,这是一个非常简单的代码,用于连接MySQL的第一个定时器。然后出现了错误。 第一:

 "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"

我将“mysql-connector-java-8.0.11.jar”导入项目并回复了Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. 所以我把代码切换到:

 Class.forName("com.mysql.cj.jdbc.Driver"); // "Solved"

第二:

WARN: Establishing SSL connection without server's identity verification is not recommended. 

然后我添加了“?autoReconnect = true& useSSL = false”,代码转到:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false", "root", "a1s2d3f4g5"); // "Solved"

第三:

java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

我认为连接MySQL非常简单,但现在我不知道为什么它没有连接。我不知道这可能是一个问题,但我有两个硬盘,Workbench和Connector在C:和Eclipse以及项目都在E:。我尝试将.jar连接器导入项目中的文件夹,但没有重大更改。

1 个答案:

答案 0 :(得分:0)

也许你的联系被拒绝了;可能类似于o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool. Spring Boot + MySql

检查您是否可以使用命令行从本地计算机进行连接,如果需要,可以创建用户从任何主机进行连接,如链接中所述 -

(是的,希望它应该很简单..)