部署到Google Cloud后,Cloud SQL / MySQL服务器失败

时间:2019-03-21 03:19:21

标签: google-app-engine google-cloud-platform

我有一个Google App Engine应用程序,当使用localhost:8080在本地运行时,它运行正常,但是使用gcloud app deploy部署到云中后,出现以下错误:

Warning: PDO::__construct(): MySQL server has gone away in /base/data/home/apps/s~fileabcd/20190320t221240.123456737151234567/gac_abcd.php on line 7

Warning: PDO::__construct(): Error while reading greeting packet. PID=-1 in /base/data/home/apps/s~fileabcd/20190320t221240.123456737151234567/gac_abcd.php on line 7

有任何想法为什么会这样?

1 个答案:

答案 0 :(得分:1)

我发现了我的Google App Engine(GAE)应用程序在本地主机上正常运行的原因,但是在部署到[PROJECT-ID] .appspot.com之后抛出了MySQL server has gone away错误。

原因是因为我的应用程序正在连接到另一个项目中的Cloud SQL实例,为此,您必须授予默认的appengine服务帐户([PROJECT-ID] @ appspot.gserviceaccount.com)之一。以下IAM角色:

  • Cloud SQL客户端
  • Cloud SQL编辑器
  • Cloud SQL管理员

在包含Cloud SQL实例的项目中将App Engine默认服务帐户添加为Cloud SQL Client角色之后,一切运行正常。

来自Cloud SQL documentation