我有一个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
有任何想法为什么会这样?
答案 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实例的项目中将App Engine默认服务帐户添加为Cloud SQL Client
角色之后,一切运行正常。