【问题标题】:Error while connecting to Cloud SQL using jdbc driver使用 jdbc 驱动程序连接到 Cloud SQL 时出错
【发布时间】:2020-07-13 18:27:41
【问题描述】:

我编写了一个基本的 java 代码来连接到我的 Cloud SQL 实例。我在这个项目中添加了 mysql jar 连接器。


import java.sql.*;

class MysqlCon {
    public static void main(String args[]) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://project-name:us-central1:test-instance", "username", "password");

        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("select * from testing");
                while (rs.next())
            System.out.println(rs.toString());
        con.close();
        } catch (Exception e) {
        System.out.println(e);
        }
    }
}

我无法连接和接收此异常

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "us-central1:test-instance"'.

非常感谢任何帮助。 谢谢!

【问题讨论】:

标签: java mysql google-cloud-platform google-cloud-sql


【解决方案1】:

感谢 nbk 的评论。我能够通过修改连接字符串并将此依赖项包含在我的 Maven 项目中来解决该问题

 <dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>mysql-socket-factory</artifactId>
    <version>1.0.15</version>
</dependency>

更新的连接字符串

"jdbc:mysql:///testing?cloudSqlInstance=project-name:us-central1:test-instance&amp;socketFactory=com.google.cloud.sql.mysql.SocketFactory&amp;user=username&amp;password=password"

【讨论】:

  • 请接受您自己的答案,这样其他成员可以将您的答案识别为已接受且有效。
猜你喜欢
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-15
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多