我读完了全部文档 https://cloud.google.com/functions/docs/sql与从 GCF 连接到 Cloud SQL 中托管的 MySQL 相关,但仍然无法连接。另外,尝试了文档中的所有提示SQLAlchemy 与此相关 https://docs.sqlalchemy.org/en/latest/dialects/mysql.html?highlight=appengine#module-sqlalchemy.dialects.mysql.gaerdbms。
我正在使用以下连接
con = 'mysql+pymysql://USER:PASSWORD@/MY_DB?unix_socket=/cloudsql/Proj_ID:Zone:MySQL_Instance_ID'
mysqlEngine = sqlalchemy.create_engine(con)
我得到的错误是:
(pymysql.err.OperationalError) (2003,“无法连接到‘localhost’上的 MySQL 服务器([Errno 111] 连接被拒绝)”)(此错误的背景位于:http://sqlalche.me/e/e3q8 http://sqlalche.me/e/e3q8)
您需要确保您使用的是正确的/cloudsql/<INSTANCE_CONNECTION_NAME>
(这是格式<PROJECT_ID>:<REGION>:<INSTANCE_ID>
)。如果您的 Cloud SQL 实例与您的函数位于同一项目和区域中,则这应该是所需的全部内容。
GCF 文档还强烈建议将池限制为单个连接。这意味着您应该同时设置pool_size=1
and max_overflow=0
在您的引擎设置中。
如果您想查看如何设置这些设置的示例,请查看此示例应用程序Github https://github.com/GoogleCloudPlatform/python-docs-samples/blob/1980f31828104d9c39ed4ee11239b1a95ce1f00c/cloud-sql/mysql/sqlalchemy/main.py#L37.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)