Como fazer login no DB usando o cloud-sql-proxy (Cloud SQL Auth Proxy) do Google

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou incompetente.
Anotei isso porque tropecei ao tentar me conectar ao DB via cloud-sql-proxy por um momento.

Instalação de Binários Necessários

Salvar o binário executável do cloud-sql-proxy e adicionar ao PATH

Primeiro, você precisa do binário executável do cloud-sql-proxy.
Como não existe em pacotes como o brew, você precisa obter o binário executável compilado para cada conjunto de instruções no site do Google.

curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.2/cloud-sql-proxy.darwin.arm64
chmod +x cloud-sql-proxy
sudo mv cloud-sql-proxy /usr/local/bin
which cloud-sql-proxy

Embora não muitas pessoas façam isso, os binários executáveis instalados com homebrew são colocados em /opt/homebrew/bin/, mas desta vez, como é um binário único instalado pelo usuário, para MacOS, que é um fork do FreeBSD, parece melhor colocá-lo em /usr/local/bin, então foi lá que o coloquei.

Instalar o binário do MySQL

Aparentemente, se você executar brew install mysql sem especificar a versão, os binários podem estar faltando ou a versão pode ser muito antiga, causando erros de conexão, então instale da seguinte forma.
Nesse ponto, foi resolvido em segundos graças ao meu sênior.

brew install mysql-client@8.4

E, então,
Se o PATH não estiver configurado, procure-o e crie um link simbólico da seguinte forma.

find /opt/homebrew -name "mysql*"
ln -s /caminho/do/binario/mysql/encontrado /opt/homebrew/bin/mysql

Obter informações de conexão do DB

Verificação de ambiente e autenticação

Presume-se que o processo de login já tenha sido realizado.

gcloud auth login
gcloud auth application-default login

Especifique o projeto abaixo

gcloud config set project ID_DO_PROJETO

A verificação do projeto é feita da seguinte forma

gcloud config get-value project

E então, verifique o nome de conexão do DB abaixo

gcloud sql instances describe NOME_DA_INSTANCIA_DB | grep "^connectionName:" | awk '{print $2}'

Conectar via cloud-sql-proxy

Esta é uma questão de mecanismo, mas este cloud-sql-proxy atua como um proxy para o DB.
Em termos de imagem, se você tentar acessar o próprio DB que existe dentro de uma VM, precisaria primeiro fazer SSH no SO e realizar o processo de login no próprio servidor DB, mas este proxy permite que o servidor DB existente no Cloud SQL seja Listen no localhost.
Se a porta do DB estiver aberta, você provavelmente conseguiria se conectar diretamente ao servidor DB, mas não acho que haja um servidor DB configurado em um estado tão inseguro.
Portanto, se você quiser se conectar de forma o mais segura e fácil possível, a solução provavelmente foi usar um proxy para o DB.

Então, vamos especificar o nome de conexão do DB que verificamos anteriormente.

cloud-sql-proxy --port 3306 NOME_DA_CONEXAO_DB

O acima é para MySQL, então para PostgreSQL e outros, você precisará especificar uma porta diferente e os binários necessários também mudarão, então pode ser necessário fazer as alterações apropriadas aqui.

Uma vez que a conexão é estabelecida, ela está em um estado de proxy bem-sucedido, então você pode deixá-la como está e se conectar ao MySQL de outro terminal.

mysql --user="USUARIO_DB" --password="SENHA_DO_USUARIO_DB" -h 127.0.0.1

Até a próxima.
Obrigado.

Related Posts