无法从数据融合连接云SQL SQL MySQL / PostgreSQL实例



目标是使用云数据融合连接云SQL MySQL或PostgreSQL实例。

  • 使用MySQL和PostgreSQL创建云SQL实例
  • 创建的云数据融合实例
  • 来自Wrangler>添加连接>云SQL mysql
  • 在IAM中添加了数据融合实例,并将权限添加到以下云SQL客户端云数据融合API服务代理
  • 在添加连接中,使用JDBC URL为JDBC:mysql://google/mysql?cloudsqlinstance =& socketFactory = com.google.cloud.sql.mysql.mysql.socketfactory& usessl& usp; usp; usp; usp; usp; usp; usp;
  • 添加了mysql的驱动程序:mysql-connector-java-5.1.39-bin.jar
  • 添加了MySQL插座工厂罐子作为库。

测试连接时,它会失败,而错误:com.mysql.jdbc.driver

期望与Cloud SQL MySQL的连接成功测试成功,以便可以构建数据融合管道。

问题是,您需要提供一个具有驱动程序和连接器的JAR。您可以在此处使用驱动程序和JDBC插座工厂找到有关如何构建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>

看到"错误:com.mysql.jdbc.driver找不到"有点烦人,而无需指出根本原因。但是,数据融合中的错误消息是正确的,因为手动构建软件包时不包括MySQL驱动程序类。这个问题来自此行:

<scope>provided</scope>

在cloud-sql-jdbc-socket-factory/connector-j-8/pom.xml文件中,这意味着目标软件包不包括 mysql-connector-java jar文件,其中包含 com.mysql.jdbc.Driver等。如果您在没有上述线路的情况下构造JAR连接器,则可以解决该错误。

相关内容

  • 没有找到相关文章

最新更新