我正在尝试从另一个项目的App Engine应用程序访问存储在一个Cloud Platform项目中的Google Cloud SQL实例,但它不起作用。
与SQL实例的连接失败,并显示以下错误:
OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
我按照Google文档中的说明进行操作,并将第二个项目的App Engine服务帐户添加到了包含Cloud SQL实例的项目的IAM权限列表中(以“ Cloud SQL编辑器”为角色)。我在应用程序中使用的连接详细信息和配置与在功能正常的App Engine应用程序(与Cloud SQL实例位于同一项目中)中使用的连接详细信息和配置相同。
关于我的配置的唯一一件事似乎是,在我的第二个GCP项目中,虽然看起来像默认帐户([MY-PROJECT-NAME]@appspot.gserviceaccount.com)的App Engine服务帐户出现在IAM权限列表中,但该服务帐户未在“服务帐户”标签的“ IAM和管理员。列出的唯一服务帐户是Compute Engine default service account。我尚未删除任何服务帐户;这里从未列出过App Engine默认服务帐户,但除了MySQL连接外,App Engine应用程序运行良好。
不确定是否相关,但是我正在App Engine标准环境中运行Python 2.7应用程序,并使用MySQLdb进行连接。