#google-app-engine #google-cloud-platform
#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:
Я обнаружил причину, по которой мое приложение Google App Engine (GAE) функционировало должным образом на localhost, но выдало MySQL server has gone away
ошибку после развертывания в [PROJECT-ID].appspot.com .
Причина в том, что мое приложение подключалось к экземпляру Cloud SQL в другом проекте, и для этого вы должны предоставить учетную запись службы appengine по умолчанию ([PROJECT-ID]@appspot.gserviceaccount.com ) одна из следующих ролей IAM:
- Облачный SQL-клиент
- Облачный редактор SQL
- Администратор облачного SQL
После того, как я добавил учетную запись службы App Engine по умолчанию в качестве Cloud SQL Client
роли в проекте, содержащем экземпляр Cloud SQL, все работало отлично.
Комментарии:
1. мой sql и app engine находятся в одном проекте, хотя я по-прежнему получаю «запрещенное» сообщение, предлагающее мне добавить SQL client / admin в основной IAM, и я это сделал, и до сих пор получаю ошибки