Я успешно создал экземпляр виртуальной машины 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. Помните о риске безопасности, связанном с политикой широко открытого разрешения хоста.