Назад | Перейти на главную страницу

Подключайтесь к 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 / connector / 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 из движка приложения: 2002: время ожидания соединения истекло

При подключении к 10.156.0.2 из движка приложения: 2002: в соединении отказано

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

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