我正试图用一个python管道连接到CloudSQL。
实际情况
-
我可以使用DirectRunner毫无问题地完成
-
我无法使用DataflowRunner连接
连接函数
def cloudSQL(input):
import pymysql
connection = pymysql.connect(host='<server ip>',
user='...',
password='...',
db='...')
cursor = connection.cursor()
cursor.execute("select ...")
connection.close()
result = cursor.fetchone()
if not (result is None):
yield input
错误
这是使用DataflowRunner的错误消息
OperationalError: (2003, "Can't connect to MySQL server on '<server ip>' (timed out)")
云SQL
我有publicIP(要用directrunner从本地测试),我还试图激活私有IP,看看这是否是连接DataflowRunner的问题
选项2
我也试过
connection = pymysql.connect((unix_socket='/cloudsql/' + <INSTANCE_CONNECTION_NAME>,
user='...',
password='...',
db='...')
出现错误:
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory)")