Google cloud platform 拒绝将应用程序引擎连接到云SQL访问
我正在尝试让我的Flask App Engine项目读取存储在Cloud SQL MySQL 5.7数据库中的数据。有些地方出了问题,因为我只得到了Google cloud platform 拒绝将应用程序引擎连接到云SQL访问,google-cloud-platform,google-cloud-sql,google-app-engine-python,Google Cloud Platform,Google Cloud Sql,Google App Engine Python,我正在尝试让我的Flask App Engine项目读取存储在Cloud SQL MySQL 5.7数据库中的数据。有些地方出了问题,因为我只得到了pymysql.err.OperationalError。我一直在遵循这里的说明: 已启用云SQL管理API 根据链接文件: App Engine使用服务帐户授权您与云SQL的连接。此服务帐户必须具有正确的IAM权限才能成功连接。除非另有配置,否则默认服务帐户的格式为service PROJECT_NUMBER@gae-api-prod.google
pymysql.err.OperationalError
。我一直在遵循这里的说明:
7183[注意]用户“www-data”@'cloudsqlproxy~xxx.xxx.xx.xx的访问被拒绝(使用密码:是)
(IP地址已编辑)。这有点令人困惑,因为“www数据”不是我在代码中指定的用户我哪里出错了?我该如何修复它?当尝试使用错误的凭据连接到数据库时,此错误是mySQL错误 请验证您使用的值是否正确 如果您不记得数据库用户名和密码,您可以在控制台上更改它,方法是执行下面的步骤,这些步骤也将被扩展
- 去
- 选择您的数据库
- 转到用户
- 在用户选择旁边,单击三个点
- 然后选择更改密码
- 键入新密码,然后单击“确定”
最有可能的情况是,您正在本地构建和测试您的应用程序,其中您提供了具有云SQL访问权限的用户名作为凭据。生成时,除非您另有指定,否则将为应用程序引擎实例分配默认用户名 要解决此问题:
gae-api-prod.google.com.iam.gserviceaccount.com结尾
如果这能帮你解决问题,请告诉我 你的第一句话就说对了!在这种情况下,连接到数据库时出错,因为连接字符串的格式不正确。对比:
app.config['SQLALCHEMY\u DATABASE\u URI']='mysql+pymysql://'+':'+db\u user+@/'+db\u name+'?unix\u socket=/cloudsql/'+connection\u name
与:app.config['SQLALCHEMY\u DATABASE\u URI']='mysql+pymysql://'+db\u user+':'+db\u pass+'/'/'+db\u name+'?unix\u socket=/sql=/sql/'/cloudu-connection\name>。
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://' + ':' + db_user + '@/' + db_name + '?unix_socket=/cloudsql/' + connection_name