#google-app-engine #mysqli #google-cloud-sql
#google-движок приложений #mysqli #google-cloud-sql #google-app-engine
Вопрос:
У меня возникают проблемы при подключении к экземпляру Cloud SQL, размещенному в App engine (среда выполнения Java). Подключающийся клиент представляет собой веб-приложение PHP, размещенное в другом экземпляре Google App engine. Возможно ли, чтобы экземпляр App engine подключался к облачному SQL в другом экземпляре?
В принципе, моя настройка заключается в следующем:
- Google App Engine 1 (среда выполнения Java)
- установлен с облачным экземпляром SQL
- размещает конечные точки Google и подключается к облачному SQL на этом экземпляре
- Google App Engine 2 (среда выполнения PHP)
- PHP-скрипт, подключающийся к облачному экземпляру SQL 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//");
Возможно ли это? Если это так, какую конфигурацию я должен установить, чтобы это сработало?
Спасибо, Стивен
Ответ №1:
Я нашел ответ на свой вопрос новичка. Нажмите Редактировать в консоли Cloud SQL, затем добавьте свой идентификатор экземпляра Google App в разделе «Авторизованные приложения App Engine».