社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

从Python中的数据流连接到CloudSQL

IoT user • 5 年前 • 506 次点击  

我正试图用一个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)")
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49631
 
506 次点击  
文章 [ 3 ]  |  最新文章 5 年前
IoT user
Reply   •   1 楼
IoT user    6 年前

带着这个 solution 我可以访问CloudSQL。

出于测试目的,您可以在不使用证书的情况下将0.0.0.0/0添加到CloudSQL publicIP

Omair
Reply   •   2 楼
Omair    6 年前

您必须模拟Python中JdbcIO.read()的实现,如下面所述 StackOverflow answer

kurtisvg
Reply   •   3 楼
kurtisvg    6 年前

看看 Cloud SQL Proxy . 它将创建一个本地入口点(Unix套接字或TCP端口,具体取决于您的配置),该入口点将代理和验证到您的云SQL实例的连接。