Подключитесь к MySQL на Google Compute Engine из App Engine и извне

Подключитесь к MySQL на Google Compute Engine из App Engine и извне

Я успешно создал экземпляр виртуальной машины Compute Engine и установил на него MySQL, следуя этому руководству: https://cloud.google.com/solutions/setup-mysql

Теперь я хочу подключиться к нему из App Engine и из моего дома, если это возможно. Используя это руководство:https://cloud.google.com/appengine/docs/standard/python/connecting-vpc Я создал коннектор, указав ему предлагаемый IP-адрес 10.8.0.0/28.

В app.yaml моего движка приложений я вставил: vpc_access_connector: name: projects/locationconnection/locations/europe-west3/connectors/vpcaccess

Экземпляр виртуальной машины показывает внутренний IP-адрес 10.156.0.2 и внешний IP-адрес 34.89.141.17.

Я пытаюсь подключиться из PHP, используя эту строку: new mysqli($servername, $username, $password, $dbname, 3306, null); но получаю разные ошибки.

При подключении к 34.89.141.17 из моего дома: mysqli::__construct(): (HY000/2002): Не удалось установить соединение, поскольку целевая машина активно отвергла его. (Я даже создал правило брандмауэра, разрешающее весь трафик с моего домашнего IP)

При подключении к 10.8.0.0 из app engine: 2002: Время ожидания соединения истекло

При подключении к 10.156.0.2 из app engine: 2002: Соединение отклонено

Как мне установить связь?

решение1

В руководствеКак настроить MySQL на Google Compute Engineпоказывает, как настроить Mysql, но имейте в виду, что у Mysql своя собственная конфигурация. По ошибкам, которые вы упомянули, проблема в том, что Mysql разрешает внешние подключения. Когда вы добавляете пользователя и предоставляете ему привилегии (или существующим пользователям), вам нужно указать хост или диапазон сетей, с которых этому пользователю разрешено подключаться. Например, эта строка GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; предоставляет все разрешения пользователю root и разрешает подключения от пользователя root со всех хостов ('%' после @ — это подстановочный знак, который означает со всех хостов). Вы можете использовать подстановочный знак следующим образом для частной сети. 10.156.0.%Хост применяется для публичных IP-адресов или для IP-адресов из вашей частной сети. Посетите этот сайт для получения дополнительной информацииКак разрешить удаленные подключения к MySQL. Помните о риске безопасности для широко открытой политики разрешения хоста.

Связанный контент