
Criei com êxito uma instância de VM do Compute Engine e instalei o MySQL nela usando este guia: https://cloud.google.com/solutions/setup-mysql
Agora quero me conectar a ele pelo App Engine e também pela minha casa, se possível. Usando este guia:https://cloud.google.com/appengine/docs/standard/python/connecting-vpc Criei o conector, fornecendo o endereço IP 10.8.0.0/28 sugerido.
No app.yaml do meu mecanismo de aplicativo, inseri: vpc_access_connector: nome: projetos/locationconnection/locations/europe-west3/connectors/vpcaccess
A instância da VM mostra um IP interno 10.156.0.2 e um IP externo 34.89.141.17
Estou tentando me conectar do PHP usando esta linha: new mysqli($servername, $username, $password, $dbname, 3306, null); mas recebo erros diferentes.
Ao conectar-se a 34.89.141.17 de minha casa: mysqli::__construct(): (HY000/2002): Nenhuma conexão pôde ser feita porque a máquina de destino a recusou ativamente. (Até criei uma regra de Firewall para permitir todo o tráfego do meu IP residencial)
Ao conectar-se ao 10.8.0.0 do App Engine: 2002: A conexão expirou
Ao conectar-se a 10.156.0.2 do App Engine: 2002: Conexão recusada
Como posso fazer uma conexão?
Responder1
No guiaComo configurar o MySQL no Google Compute Enginemostra como configurar o Mysql, mas lembre-se de que o Mysql tem sua própria configuração. Pelos erros que você mencionou, o problema é sobre o Mysql permitir conexões externas. Ao adicionar um usuário e conceder privilégios a ele (ou a usuários existentes), você precisa especificar o host ou intervalo de rede a partir do qual esse usuário pode se conectar. Por exemplo, esta linha GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
concede todas as permissões ao usuário root e permite conexões do usuário root de todos os hosts (o '%' após o @ é um curinga que significa de todos os hosts). Você pode usar o curinga como este para rede privada. 10.156.0.%
O host se aplica a IPs públicos ou a IPs de sua rede privada. Verifique este site para mais informaçõesComo permitir conexões remotas ao MySQL. Tenha em mente o risco de segurança de uma política de permissão de host totalmente aberta.