【问题标题】:Cloud SQL / MySQL server fails after deploying to Google CloudCloud SQL / MySQL 服务器在部署到 Google Cloud 后失败
【发布时间】:2019-03-21 03:19:20
【问题描述】:

我有一个 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

任何想法为什么会发生这种情况?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    来自Cloud SQL documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-03
      • 2021-06-19
      • 2021-09-25
      • 1970-01-01
      • 2020-06-02
      • 2019-10-24
      • 2020-09-26
      • 2019-08-22
      相关资源
      最近更新 更多