【发布时间】:2020-05-29 17:28:51
【问题描述】:
我正在尝试让我的 Flask App Engine 项目读取存储在 Cloud SQL MySQL 5.7 数据库中的数据。出了点问题,因为我得到的只是pymysql.err.OperationalError。我一直按照这里的说明进行操作:https://cloud.google.com/sql/docs/mysql/connect-app-engine。
Cloud SQL Admin API 已启用。
-
根据链接文档:
App Engine 使用服务帐号来授权您与 Cloud SQL 的连接。此服务帐户必须具有正确的 IAM 权限才能成功连接。除非另有配置,否则默认服务帐户的格式为 service-PROJECT_NUMBER@gae-api-prod.google.com.iam.gserviceaccount.com。
列出我的项目权限的 IAM 页面不包含上述格式的成员。 “App Engine 默认服务帐户”的格式为:my-project-name@appspot.gserviceaccount.com。此服务帐号具有 Cloud SQL 客户端和编辑者角色。
虽然我的查询不成功,但每次尝试后我都会在日志查看器中记录:
7183 [Note] Access denied for user 'www-data'@'cloudsqlproxy~xxx.xxx.xx.xx' (using password: YES)(IP 地址已编辑)。这有点令人困惑,因为“www-data”不是我在代码中指定的用户。用于连接的代码:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://' + ':' + db_user + '@/' + db_name + '?unix_socket=/cloudsql/' + connection_name
我哪里出错了,我该如何解决?
【问题讨论】:
标签: google-cloud-platform google-cloud-sql google-app-engine-python