GCloud SQL 在 Docker 容器上超时

GCloud SQL 在 Docker 容器上超时

我在 Paperspace Deployment Docker 容器中有一个 flask 应用程序。它连接到 Google Cloud SQL (MySQL)。

以下是 YALM 参数中的变量:

env:
  - name: CLOUD_SQL_CONNECTION_NAME
    value: xx.xx.xx.xx
  - name: CLOUD_SQL_USERNAME
    value: my_user
  - name: CLOUD_SQL_PASSWORD
    value: xxxxx
  - name: CLOUD_SQL_DATABASE_NAME
    value: db_01

以及相关代码:

HOST =os.environ.get('CLOUD_SQL_CONNECTION_NAME') 
USER = os.environ.get('CLOUD_SQL_USERNAME')
PWD = os.environ.get('CLOUD_SQL_PASSWORD')
SQLDB = os.environ.get('CLOUD_SQL_DATABASE_NAME')
CHARSET = os.environ.get('CLOUD_SQL_CHARSET')

SQLALCHEMY_DATABASE_URI = ('mysql+pymysql://{user}:{password}@{connection_name}/{database}').format(user=USER, password=PWD,database=SQLDB, connection_name=HOST)

app.config['SQLALCHEMY_DATABASE_URI'] =  SQLALCHEMY_DATABASE_URI

如果我在本地电脑上运行它,容器运行良好,但在 Paperspace 云中则不行。

即使我拥有 GCould SQL 授权 IP 中的 Paperspace 服务的 IP 地址,GCloud SQL 服务器也从不应答。

通过对服务端点 URL 进行 ping 操作,已获取 IP。

这是我从 Paperspace 部署服务器收到的错误。

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '[CLOUD_SQL_CONNECTION_NAME(IP)]' (timed out)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)

为什么 GCloud SQL 服务器始终没有响应?是否有任何端口或授权需要激活?

相关内容