Conéctate con un cliente de psql

Puedes usar el cliente de línea de la comandos de PostgreSQL para conectarte a Cloud SQL. En esta página, se describe cómo conectar un cliente psql a tu instancia de Cloud SQL, ya sea que se ejecute de forma local en una máquina cliente, en una VM de Compute Engine, o en Cloud Shell.

Antes de comenzar

Antes de usar un cliente psql para conectarte a tu instancia de Cloud SQL, haz lo siguiente:

Usa un cliente PostgreSQL en una máquina local o en una VM de Compute Engine

El uso de un cliente psql para conectarte a tu instancia de Cloud SQL implica tres tareas de alto nivel:

  1. Instala el cliente.
  2. Configura el acceso a tu instancia de Cloud SQL.
  3. Conéctate a tu instancia de Cloud SQL.

Instala el cliente

Para instalar el cliente de psql, haz lo siguiente:

Debian/Ubuntu

Instala el cliente psql desde el administrador de paquetes:

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

CentOS/RHEL

Instala el cliente psql desde el administrador de paquetes:

sudo yum install postgresql

openSUSE

Instala el cliente psql desde el administrador de paquetes:

sudo zypper install postgresql

Otras plataformas

  1. Descarga la distribución principal de PostgreSQL para tu plataforma desde la página de descargas de PostgreSQL.
    La distribución principal incluye el cliente psql.
  2. Instala la base de datos de PostgreSQL y sigue las instrucciones en la página de descargas.

Configura el acceso a tu instancia de Cloud SQL

Para configurar el acceso a la instancia, haz lo siguiente:

  1. Desde la máquina cliente o la instancia de VM de Compute Engine, usa ¿Cuál es mi IP? para ver la dirección IP de la máquina cliente.
  2. Copia esa dirección IP.
  3. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  4. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  5. Selecciona Conexiones en el menú de navegación de SQL.
  6. En la sección Redes autorizadas, haz clic en Agregar red y, luego, ingresa la dirección IP de la máquina en la que está instalado el cliente.
  7. Haz clic en Listo y, luego, en Guardar en la parte inferior de tu página para guardar los cambios.
  8. Conéctate a tu instancia, ya sea con SSL o sin SSL.

Conéctate a tu instancia de Cloud SQL sin encriptación

Para conectarte a la instancia, sigue estos pasos:

  1. Confirma que instalaste el cliente y configuraste el acceso a tu instancia.
  2. Inicia el cliente psql:
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP"
    
  3. Ingresa la contraseña.
  4. Aparecerá el mensaje de psql.

Conéctate a tu instancia de Cloud SQL con SSL

Para conectarte mediante SSL, necesitas lo siguiente:

  • Un certificado de autoridad certificada (CA) en un archivo server-ca.pem.
  • Un certificado de clave pública del cliente en un archivo client-cert.pem.
  • Una clave privada del cliente en un archivo client-key.pem

Si te falta un certificado de cliente y una clave privada correspondiente, crea un certificado de cliente nuevo.

Antes de comenzar, confirma que instalaste el cliente y configuraste el acceso a tu instancia.

Para conectarte a tu instancia con mediante SSL, haz lo siguiente:

  1. Inicia el cliente psql:
    psql "sslmode=verify-ca sslrootcert=server-ca.pem \
          sslcert=client-cert.pem sslkey=client-key.pem \
          hostaddr=INSTANCE_IP \
          user=postgres dbname=DB_NAME"
    

    Por ejemplo:

    psql "sslmode=verify-ca sslrootcert=server-ca.pem \
          sslcert=client-cert.pem sslkey=client-key.pem \
          hostaddr=01.23.45.67 \
          user=postgres dbname=postgres"
    

    No se requiere un modo SSL de verify-full. verify-ca es suficiente porque la CA es específica de la instancia.

    Sin embargo, si deseas usar el modo verify-full de PostgreSQL, ejecuta el siguiente comando:

    psql "sslmode=verify-full sslrootcert=server-ca.pem \
          sslcert=client-cert.pem sslkey=client-key.pem \
          hostaddr=INSTANCE_IP port=5432 \
          user=postgres dbname=DB_NAME \
          host=INSTANCE_NAME"
    

    Por ejemplo:

    psql "sslmode=verify-full sslrootcert=server-ca.pem \
          sslcert=client-cert.pem sslkey=client-key.pem \
          hostaddr=01.23.45.67 port=5432 \
          user=postgres dbname=postgres \
          host=myinstance"
    

    Además, es posible que quieras crear un archivo de servicio de conexión para administrar tus parámetros de conexión, en especial si te conectas a más de una instancia. Para obtener más información, consulta la documentación de PostgreSQL.

  2. Ingresa la contraseña. La contraseña es obligatoria para Cloud SQL aunque PostgreSQL admite conectividad sin contraseña mientras se usa SSL.
  3. Puedes confirmar que la conexión está encriptada si buscas el cifrado en la información de la conexión:
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

Usa el cliente en Cloud Shell

Para conectarte a una instancia de Cloud SQL (solo IP pública), sigue estos pasos:

  1. Ve a la consola de Google Cloud.

    Ve a la consola de Google Cloud.

  2. Haz clic en el ícono de Cloud Shell a la derecha de la barra de herramientas.

    Cloud Shell tarda unos minutos en inicializarse.

  3. En el mensaje de Cloud Shell, usa el cliente incorporado para conectarte a tu instancia de Cloud SQL:
    gcloud sql connect INSTANCE_ID \
    --user=postgres
    
  4. Escribe la contraseña.

El comando gcloud sql connect no admite la conexión a una instancia de Cloud SQL mediante una IP privada ni mediante SSL/TLS. Para conectarte con la encriptación, instala y usa el proxy en Cloud Shell:

  1. Instala el proxy (Linux de 64 bits) en el directorio /home/USER.
  2. Inicia el proxy con la autenticación de la CLI de gcloud:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. Conéctate a la base de datos mediante la conexión TCP:

    psql -U USERNAME --host=127.0.0.1

¿Qué sigue?

Pruébalo tú mismo

Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud SQL en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Probar Cloud SQL gratis