Conectar usando um cliente psql

É possível usar o cliente de linha de comando PostgreSQL para se conectar ao Cloud SQL. Esta página descreve como conectar um psql cliente à instância do Cloud SQL, seja em execução local na máquina cliente, em uma VM do Compute Engine ou no Cloud Shell.

Antes de começar

Antes de usar um cliente psql para se conectar à sua instância do Cloud SQL, faça o seguinte:

Usar um cliente PostgreSQL em uma máquina local ou uma VM do Compute Engine

Usar um cliente psql para se conectar à sua instância do Cloud SQL envolve três tarefas de alto nível:

  1. Instalar o cliente.
  2. Configurar o acesso à instância do Cloud SQL.
  3. Conectar à instância do Cloud SQL.

Instalar o cliente

Para instalar o cliente psql, faça o seguinte:

Debian/Ubuntu

Instale o cliente psql do gerenciador de pacotes:

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

Instale o cliente psql do gerenciador de pacotes:

sudo yum install postgresql

openSUSE

Instale o cliente psql do gerenciador de pacotes:

sudo zypper install postgresql

Outras plataformas

  1. Faça o download da PostgreSQL Core Distribution referente à sua plataforma na página de downloads do PostgreSQL (em inglês).
    A Core Distribution inclui o cliente psql.
  2. Instale o banco de dados PostgreSQL de acordo com as orientações contidas na página de download.

Configurar o acesso à instância do Cloud SQL

Para configurar o acesso à instância, faça o seguinte:

  1. Na máquina de cliente ou na instância de VM do Compute Engine, use Qual é meu IP para consultar o endereço IP.
  2. Copie esse endereço IP.
  3. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  4. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  5. Selecione Conexões no menu de navegação do SQL.
  6. Selecione a guia Rede.
  7. Na seção Redes autorizadas, clique em Adicionar rede e insira o endereço IP da máquina em que o cliente está instalado.
  8. Clique em Concluído e, em seguida, em Salvar na parte inferior da página para salvar as mudanças.
  9. Conecte-se à instância usando SSL/TLS ou sem criptografia (sem usar SSL/TLS).

Conectar-se à instância do Cloud SQL sem criptografia

Para permitir a conexão sem criptografia, o modo SSL precisa estar definido como ALLOW_UNENCRYPTED_AND_ENCRYPTED na instância. No console do Google Cloud, a configuração equivalente é Permitir tráfego de rede não criptografado.

Para mais informações sobre a configuração SSL/TLS da sua instância, consulte Configurar certificados SSL/TLS.

Para se conectar à sua instância, faça o seguinte:

  1. Verifique se você instalou o cliente e configurou o acesso à instância.
  2. Inicie o cliente psql:
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
  3. Digite sua senha.
  4. O prompt do psql é exibido.

Conectar-se à instância do Cloud SQL usando SSL/TLS

Para se conectar à instância usando SSL/TLS e autenticação integrada:

  1. Inicie o cliente psql:
    psql "sslmode=require \
          hostaddr=INSTANCE_IP_ADDRESS \
          user=postgres dbname=DB_NAME"
       

    Por exemplo:

    psql "sslmode=require \
          hostaddr=203.12.34.56 \
          user=postgres dbname=postgres"
       

    Talvez também seja útil criar um arquivo de serviço de conexão para gerenciar seus parâmetros de conexão, especialmente se você estiver se conectando a mais de uma instância. Para mais informações, consulte a documentação do PostgreSQL (em inglês).

  2. Digite a senha. A senha é obrigatória para o Cloud SQL, mesmo que o PostgreSQL seja compatível com a conectividade sem senha ao usar o SSL/TLS.
  3. É possível confirmar se a conexão foi criptografada procurando o código nas informações de conexão:
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

Conectar-se à instância do Cloud SQL usando SSL/TLS e verificação de certificado do cliente

Se ssl_mode na sua instância do Cloud SQL estiver configurado para TRUSTED_CLIENT_CERTIFICATE_REQUIRED, também será necessário fornecer uma identidade de cliente verificada ao fazer login.

Para se conectar usando certificados SSL/TLS com a verificação do cliente, você precisa disto:

  • um certificado de chave pública do cliente em um arquivo client-cert.pem;
  • uma chave privada do cliente em um arquivo client-key.pem.

Além disso, para permitir que o cliente verifique a identidade do servidor para autenticação mútua, especifique o certificado do servidor server-ca.pem.

Por exemplo, para iniciar o cliente psql:
   psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=INSTANCE_IP_ADDRESS \
      user=postgres dbname=DB_NAME"
   

Se você não tiver um certificado do cliente e uma chave privada correspondente, crie um novo certificado do cliente.

Como usar o cliente no Cloud Shell

Para se conectar a uma instância do Cloud SQL (somente IP público), siga estas instruções:

  1. Acesse o console do Google Cloud.

    Acesse o Console do Google Cloud.

  2. Clique no ícone do Cloud Shell à direita da barra de ferramentas.

    O Cloud Shell leva alguns instantes para inicializar.

  3. No prompt do Cloud Shell, use o cliente integrado para se conectar à instância do Cloud SQL:
    gcloud sql connect INSTANCE_ID \
    --user=postgres
  4. Digite sua senha.

O comando gcloud sql connect não aceita conexão com uma instância do Cloud SQL usando IP privado ou o SSL/TLS. Para se conectar com criptografia, instale e use o proxy no Cloud Shell:

  1. Instale o proxy (Linux 64 bits) no diretório /home/USER.
  2. Inicie o proxy usando a autenticação da gcloud CLI:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. Conecte-se ao banco de dados usando a conexão TCP:

    psql -U USERNAME --host=127.0.0.1

A seguir

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud SWL em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação gratuita do Cloud SQL