Maven:找不到适合 jdbc::mysql://google 的驱动程序

Posted

技术标签:

【中文标题】Maven:找不到适合 jdbc::mysql://google 的驱动程序【英文标题】:Maven: No suitable driver found for jdbc::mysql://google 【发布时间】:2020-07-09 15:15:13 【问题描述】:

我正在尝试使用以下代码将我的 Java Maven 项目(在 Jetty 服务器上运行)连接到 Google Cloud mysql 数据库:

private static final String CREDENTIALS_STRING = "jdbc::mysql://google/weatherplanning?cloudSqlInstance=csci310-project-2:us-central1:myinstance&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false&user=xxxx&password=xxxx";
try 
        System.out.println("Connecting to database...");
        Class.forName("com.mysql.cj.jdbc.Driver");
        connection = DriverManager.getConnection(CREDENTIALS_STRING);
     catch (SQLException | ClassNotFoundException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

我已经在我的 pom.xml 中包含了这两个依赖项:

    <dependency>
        <groupId>com.google.cloud.sql</groupId>
        <artifactId>mysql-socket-factory-connector-j-8</artifactId>
        <version>1.0.15</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.18</version>
    </dependency>

我来了

java.sql.SQLException: 没有为 jdbc::mysql://google 找到合适的驱动程序...

我不知道该怎么办。我假设依赖项应该处理将 JDBC 驱动程序添加到我的类路径。

【问题讨论】:

您打错字了,应该是jdbc:mysql://.... 一个冒号,而不是jdbcmysql 之间的两个冒号。 【参考方案1】:

您的问题看起来像是您的 JDBC 网址中有错字。您的网址应以jdbc:mysql 开头,而不是jdbc::mysql

此外,you should always use a connection pool(如Hikari)。连接池有很多好处,包括更好的错误处理、指数退避和减少延迟。

您可以在context of a web application in this sample 中查看与 Cloud SQL JDBC 套接字工厂一起使用的 Hikari。 Full instructions for deploying it are in the sample's README.

【讨论】:

以上是关于Maven:找不到适合 jdbc::mysql://google 的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

找不到适合 jdbc mysql 的驱动程序?

Openshift - 找不到适合 jdbc:mysql 的驱动程序

如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”

在 JMETER JDBC 连接配置中找不到适合 jdbc:mysql://localhost:3306/Testing 的驱动程序

找不到适合 jdbc:mysql/localhost:3306/world 的驱动程序

SQLException: 找不到适合 jdbc:mysql://localhost:3306/dbname 的驱动程序