Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';尽管设置了IAM权限,但无法从不同的GCP项目访问Google Cloud SQL实例_Python_Mysql_Google App Engine_Google Cloud Sql - Fatal编程技术网

Python Can';尽管设置了IAM权限,但无法从不同的GCP项目访问Google Cloud SQL实例

Python Can';尽管设置了IAM权限,但无法从不同的GCP项目访问Google Cloud SQL实例,python,mysql,google-app-engine,google-cloud-sql,Python,Mysql,Google App Engine,Google Cloud Sql,我正试图从另一个项目的应用程序引擎应用程序访问存储在一个云平台项目中的Google Cloud SQL实例,但它不起作用 与SQL实例的连接失败,出现以下错误: OperationalError:(2013,“读取初始通信包时与MySQL服务器的连接中断”,系统错误:38”) 我按照Google文档中的说明,将第二个项目的App Engine服务帐户添加到包含Cloud SQL实例的项目的IAM权限列表中(以“Cloud SQL Editor”作为角色)。我在我的应用程序中使用的连接详细信息和配

我正试图从另一个项目的应用程序引擎应用程序访问存储在一个云平台项目中的Google Cloud SQL实例,但它不起作用

与SQL实例的连接失败,出现以下错误:
OperationalError:(2013,“读取初始通信包时与MySQL服务器的连接中断”,系统错误:38”)

我按照Google文档中的说明,将第二个项目的App Engine服务帐户添加到包含Cloud SQL实例的项目的IAM权限列表中(以“Cloud SQL Editor”作为角色)。我在我的应用程序中使用的连接详细信息和配置与云SQL实例所在的同一项目中功能完善的应用程序引擎应用程序中使用的连接详细信息和配置相同

关于我的配置,唯一一件看起来不对劲的事情是,在我的第二个GCP项目中,当IAM权限列表中出现一个类似于默认帐户(
[my-project-NAME]@appspot.gserviceaccount.com
)的应用引擎服务帐户时,IAM&Admin的“服务帐户”选项卡下没有列出此服务帐户。列出的唯一服务帐户是
计算引擎默认服务帐户
。我没有删除任何服务帐户;这里从未列出过App Engine默认服务帐户,但除了MySQL连接之外,App Engine应用程序运行良好


不确定它是否相关,但我正在应用程序引擎标准环境中运行一个Python 2.7应用程序,使用MySQLdb进行连接。

最终解决了这个问题-也许这对遇到同样问题的其他人有用

问题:

问题在于“云SQL编辑器”角色不是超集 正如我所想象的,“云SQL客户端”;“云SQL编辑器” 允许管理云SQL实例,但不允许 与数据库的基本连接

解决方案:

正在删除授予云SQL编辑器权限的IAM条目,以及 将其替换为授予云SQL客户端权限的已修复 问题,并允许数据库连接通过


我花了半天的时间试图弄清楚为什么我在尝试写入我的google sql数据库时会出现“拒绝访问”错误,这为我解决了这个问题。这不是很直观,但您必须将以下角色添加到您的Google API服务accountCloud SQL Admin Cloud SQL Client Cloud SQL编辑器中