Ошибка при подключении к Cloud SQL с использованием драйвера jdb c - PullRequest
0 голосов
/ 02 апреля 2020

Я написал базовый c java код для подключения к моему экземпляру Cloud SQL. Я добавил в этот проект разъем jar mysql.


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"'.

Любая помощь очень оценили. Спасибо!

1 Ответ

2 голосов
/ 02 апреля 2020

Спасибо НБК за ваш комментарий. Мне удалось решить эту проблему, изменив строку подключения и включив эту зависимость в свой проект 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&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=username&password=password"

...