【发布时间】:2019-07-28 15:45:51
【问题描述】:
我正在尝试通过 Dataflow 作业将数据从本地 Mysql 摄取到 Bigquery,但它无法连接和获取数据。有没有人遇到过类似的问题?
这是我使用的代码
gcloud 数据流作业运行 mariadb_to_bigquery --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery --parameters=driverJars=gs://xxxxxx-xxxxx/mysql-connector-java-8.0.17.jar,driverClassName=com.mysql.jdbc.Driver,connectionURL='jdbc:mysql://127.0.0.1:3306 /classicmodels?user=root&password=xxxxx',query='选择 * 来自客户的,outputTable=xxxxxx-xxxxx-******:ds010.customers,bigQueryLoadingTemporaryDirectory=gs://xxxxxx-xxxxx-******/my-files/temp-dir
java.lang.RuntimeException: org.apache.beam.sdk.util.UserCodeException: java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:817)
... 38 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:204)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 41 more
Thanks,
Srikanth
【问题讨论】:
-
您确定在 MySQL 数据库所在的任何地方都打开了正确的端口吗?您可以从它所在的网络外部连接到它吗?您是否在数据库中为数据流作业来自的 IP 授予了正确的权限? (给定“%”权限,和/或找出 IP 是什么并将其专门用于 Dataflow 的白名单)
标签: mysql jdbc google-cloud-platform google-cloud-dataflow