Проблема с подключением при подключении экземпляра PHP App Engine к экземпляру Cloud SQL, созданному в другом App Engine под управлением Java Runtime

У меня возникают проблемы с подключением к экземпляру Cloud SQL, размещенному в движке приложения (Java Runtime). Подключающийся клиент - это веб-приложение PHP, размещенное в другом экземпляре движка приложений Google. Может ли экземпляр движка приложений подключиться к Cloud SQL в другом экземпляре?

По сути, моя установка выглядит следующим образом:

  • Google App Engine 1 (Java Runtime)
    • installed with Cloud SQL instance
    • размещает конечные точки Google и подключается к Cloud SQL на этом экземпляре
  • Google App Engine 2 (PHP Runtime)
    • PHP script connecting to Cloud SQL Instance of Google App Engine 1

Проблема в том, что я всегда получаю сообщение об ошибке ниже:

Warning: mysqli_connect(): MySQL server has gone away in /base/data/home/apps/s~some-php-web-app-v1/v1.376456666740733344/includes/database.php on line 29 Warning: mysqli_connect(): Error while reading greeting packet. PID=-1

Я считаю, что у меня правильный код подключения

public function connect($server = DBHOST, $username = DBUSER, $password = DBPASS,  $database = DBNAME, $socket = DBSOCKET, $port = DBPORT)
{
    $this->link = mysqli_connect($server, $username, $password, $database, $port, $socket) or die(mysqli_error());
}

Константы:

define('DBHOST', null);
define('DBSOCKET','/cloudsql/some-app-v1-test:some-db');
define('DBNAME', 'database_name');
define('DBUSER', 'root');
define('DBPORT', null);
define('DBPASS', null);
define('PROJECT_PATH', "http:someserver.com//");

Это возможно? Если да, то какую конфигурацию мне нужно установить, чтобы это работало?

Спасибо Стивен


person slbb    schedule 03.07.2014    source источник


Ответы (1)


Я нашел ответ на свой вопрос новичка. Нажмите «Изменить» в консоли Cloud SQL, затем добавьте идентификатор экземпляра приложения Google в раздел «Авторизованные приложения App Engine».

person slbb    schedule 04.07.2014