Подключение к Cloud SQL 2-го поколения на гибком PHP 7.0 App Engine — отсутствует сокет

Я решил попробовать PHP 7 в App Engine и следовал инструкциям здесь для подключения к Cloud SQL второго поколения, но я не могу заставить его работать.

В качестве тестового скрипта я решил загрузить PhpMyAdmin и получил следующую ошибку при попытке входа в систему:

Ошибка PhpMyAdmin

Затем я решил перейти в режим отладки и посмотреть, что происходит. Получается, что прокси-контейнер запущен, папка /cloudsql/ создана, но сокета там нет:

нет сокета в файловой системе

Вот мой app.yaml:

runtime: php
env: flex

manual_scaling:
    instances: 1

env_variables:
    CLOUDSQL_UNIX_SOCKET: /cloudsql/project-161108:us-east1:clod-sql-test

beta_settings:
    cloud_sql_instances: "project-161108:us-east1:clod-sql-test"

Вот информация об экземпляре Cloud SQL (да, я неправильно написал облако при его создании):

Свойства Cloud SQL

Мой вопрос: как я могу сделать сокет там, где он должен быть? Я потратил 2 дня, пытаясь исправить это, любые советы будут оценены....


person Xymanek    schedule 14.03.2017    source источник


Ответы (1)


Моя гипотеза заключается в том, что Google Cloud SQL API не включен.

Перейдите по следующей ссылке и посмотрите, включена ли она. Включите его, если нет.

https://console.cloud.google.com/apis/api/sqladmin.googleapis.com/overview?project=_

Затем попробуйте повторно развернуть приложение (к сожалению, вам нужно развернуть его снова).

person Takashi Matsuo    schedule 14.03.2017
comment
На самом деле он был отключен - я ожидал, что он будет включен (аналогично тому, как когда вы переходите к вычислительному движку, он сначала включает API). В настоящее время снова развертывается (например, в 30-й раз: D) - person Xymanek; 14.03.2017
comment
В руководстве есть кнопка для включения этого API, поэтому, если вы точно следуете руководству, оно должно работать, но его легко пропустить, потому что подобные кнопки есть во всех предыдущих руководствах. Я бы тоже пропустил. - person Takashi Matsuo; 14.03.2017
comment
Хммм, теперь файл сокета есть, но я получаю точно такую ​​же ошибку от PMA.... Я попытаюсь перераспределить сейчас - person Xymanek; 14.03.2017
comment
Файл сокета есть, так что это прогресс :) - person Takashi Matsuo; 14.03.2017
comment
@Xymanek Можете ли вы пригласить [email protected] в свой проект, чтобы я мог быстро решить проблему? - person Takashi Matsuo; 14.03.2017
comment
Оказывается, ошибка связана с PhpMyAdmin, использование PDO или mySQLi вручную работает отлично. Я посмотрю, смогу ли я понять, почему PMA не находит сокет... Спасибо за помощь! - person Xymanek; 15.03.2017
comment
Похоже, что PMA использует mysqli. Я думаю, вы можете указать сокет по умолчанию в php.ini. php.ini mysqli.default_socket = '/cloudsql/CONNECTION_NAME' - person Takashi Matsuo; 27.04.2017