无法连接到 mysql 服务器,因为“java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接”

时间:2021-04-27 19:12:58

标签: java mysql jdbc mysql-connector

这是我用来连接到服务器的代码:

String records = "",error="";
        void connectToDatabase() {
            try {
                String ip = "";//mysql server ip(removed due to privacy reasons)
                Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
                Connection connection = DriverManager.getConnection("jdbc:mysql://" + ip +":3306/androiddb?user=andro&password=andro");
                Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery("SELECT * FROM mainTable");
                while (resultSet.next()) {
                    records += resultSet.getString(1) + " " + resultSet.getString(2) + "\n";
                }
                System.out.println(records);
            } catch (Exception e) {
                error = e.toString();
                System.out.println(error);
            }
        }

异常:

java.sql.SQLNonTransientConnectionException: Could not create connection to database server.

my.ini 文件:

[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
datadir=C:\\Program Files\\MySQL\\MySQL Server 8.0\\data
bind-address = *mysql server ip*

我使用 mysql 服务器 8.0.24 和 jdbc 8.0.24

UPD:我不知道为什么,但它在我安装 jdbc 5.0.41 后开始工作

1 个答案:

答案 0 :(得分:-1)

我在 MySQL 8.0.23 和 jdbc 连接器 8.0.24 上遇到了同样的错误。在我看来,通过在字符串中添加参数 `&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=GMT%2B9:00&rewriteBatchedStatements=true&connectionTimeZone=SERVER' 连接成功。有关详细信息,请参阅发行说明。

希望对你有帮助。