目标是使用Cloud Data Fusion连接Cloud SQL mysql或postgreSQL实例。
在测试连接时,连接失败并显示错误:com.mysql.jdbc.Driver
期望与Cloud SQL MySQL的连接测试会成功,以便可以构建数据融合管道。
答案 0 :(得分:2)
问题是您需要提供一个包含驱动程序和连接器的jar。您可以找到有关如何使用驱动程序和JDBC套接字工厂from this post here构建uberjar(也称为farjar)的说明。
编辑:这是MySQL的POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mysql-with-cloud-sql-socket-factory</artifactId>
<packaging>pom</packaging>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory-connector-j-8</artifactId>
<version>1.0.14</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
答案 1 :(得分:0)
看到“错误:找不到com.mysql.jdbc.Driver”有点烦人,仅此而已就可以指出根本原因。但是,数据融合中的错误消息是正确的,因为当软件包为manually built时不包括mysql Driver类。问题来自此行:
<scope>provided</scope>
在cloud-sql-jdbc-socket-factory/connector-j-8/pom.xml文件中,这意味着目标软件包将不包含mysql-connector-java
jar文件,包含com.mysql.jdbc.Driver
的jar文件和其他文件。如果您构建的jar连接器没有上述行,则可以解决该错误。