cloud - 无法从 Data Fusion 连接 Cloud SQL mySql / postgreSQL 实例
问题描述
目标是使用 Cloud Data Fusion 连接 Cloud SQL mysql 或 postgreSQL 实例。
- 使用 MySQL 和 postgreSQL 创建 Cloud SQL 实例
- 创建了 Cloud Data Fusion 实例
- 从牧马人 > 添加连接 > Cloud SQL MySQL
- 将 Data Fusion 实例添加为 IAM 中的成员,并添加了对以下 Cloud SQL 客户端 Cloud Data Fusion API 服务代理的权限
- 在添加连接中使用 jdbc url 作为 jdbc:mysql://google/mysql?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false
- 为 mySQL 添加了驱动程序:mysql-connector-java-5.1.39-bin.jar
- 添加了 MySQL 套接字工厂 jar 作为库。
在测试连接时,它失败并出现错误: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>
推荐阅读
- ruby-on-rails - ruby 中的 Yield 声明如何工作?
- jquery - 如何从除当前元素之外的所有元素中删除一个类?
- javascript - 以 min/max 随机分块字节
- amazon-web-services - 具有多个客户接口的微服务的正确架构
- node.js - 为什么我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?
- javascript - 无法读取 multer 中未定义的属性“toString”
- javascript - 在 Vue.js 应用程序中的浏览器刷新时丢失数据
- go - 如何将 *rsa.PublicKey 变成可识别的密钥字符串
- ethereum - 以太坊中未处理的承诺拒绝警告
- sql-server - SQL Server 2008 透视和连接