IBM Cloud Docs
Conexión con psql

Conexión con psql

Utilice psql para la interacción directa y la supervisión de las estructuras de datos que se crean en la base de datos. psql también es útil para probar y supervisar consultas y rendimiento, instalar y modificar scripts y otras actividades de gestión.

El usuario admin viene con el rol por defecto PostgreSQL pg_monitorque permite el acceso a las vistas y funciones de supervisión de PostgreSQL. Por defecto, el usuario admin no tiene permisos sobre los objetos creados por otros usuarios.

Debe establecer la contraseña de admin antes de utilizarla para conectarse a la base de datos. Para obtener más información, consulte la página Configuración de la contraseña de administrador.

Instalación del psql

Para utilizar psql, las herramientas de cliente de PostgreSQL deben estar instaladas en el sistema local. Pueden instalarse con el paquete completo PostgreSQL que se proporciona desde postgresql.org o como un paquete del gestor de paquetes de su sistema operativo.

Para más información sobre psql, consulte la documentación de PostgreSQL.

La mayoría de las instrucciones para instalar las herramientas PostgreSQL presuponen que también desea que se instale la base de datos. Es una suposición razonable si está tratando con usuarios que no tienen acceso a PostgreSQL en la nube o en un servidor remoto.

Estos son los pasos para instalar psql como herramienta independiente en macOS, Linux y Windows.

Instalación de psql en macOS con Homebrew

Se recomienda Homebrew como gestor de paquetes para macOS. Con Homebrew, usted es capaz de instalar numerosas aplicaciones, por lo general con los programas disponibles en /usr/local/bin. El paquete de homebrew para las herramientas de cliente PostgreSQL es el paquete libpq. Brew hace que sea fácil de instalar:

brew install libpq

Sin embargo, hay una pequeña captura: libpq no se instalará en el directorio /usr/local/bin. Para que esto suceda, debe ejecutar:

brew link --force libpq

Que se symlink (un archivo que apunta a otro archivo o carpeta) todas las herramientas, no sólo libpq, en el directorio /usr/local/bin.

Instalando postgresql-client en Ubuntu

Los sistemas Linux, a diferencia de macOS, tienen un gestor de paquetes integrado. Para Ubuntu (y Debian) es el comando apt. El cliente PostgreSQL se distribuye en el appositamente llamado postgresql-client. Para instalarlo, ejecuta un comando como:

sudo apt-get install postgresql-client

Esto instalará el cliente PostgreSQL.

Instalación de postgresql-client en Red Hat Enterprise Linux

Para Red Hat Enterprise Linux (o RHEL como se suele escribir), hay un poco más de configuración que con Ubuntu. Para RHEL, el gestor de paquetes es Yum.

Primero, necesitas apuntar Yum al repositorio PostgreSQL, así:

sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm

Yum va a URL y se configura para utilizar ese repositorio de paquetes. Una vez hecho esto, puede añadir paquetes por nombre:

sudo yum install postgresql15

Este comando instala sólo los paquetes cliente. Si se pregunta dónde encontrar ese repositorio URL, diríjase a Linux Descargas ( Red Hat Familia) donde encontrará un formulario que le permitirá seleccionar la versión, plataforma y arquitectura PostgreSQL y le dará las instrucciones apropiadas para esa variante Red Hat- que incluye CentOS, Científica Linux, y Oracle Empresa Linux. También incluye Fedora. Los repositorios predeterminados de Fedora ya disponen de un cliente PostgreSQL. Así que para Fedora 27 y 28 y posteriores, instale el cliente PostgreSQL desde el terminal con:

sudo dnf install postgresql.x86_64

Instalación de psql en Windows

Para Windows, utilice el instalador PostgreSQL de Enterprise DB. Es un paquete de instalación completo para PostgreSQL en Windows pero puedes configurarlo para que sólo instale las herramientas de línea de comandos como psql. Seleccione sus versiones de PostgreSQL y Windows. Una vez descargado el archivo ejecutable, ejecútelo. Seleccione sólo Herramientas de línea de comandos, si no necesita el servidor instalado.

Después de instalarlo, configura las variables de entorno de Windows para poder utilizar el cliente psql en el símbolo del sistema. Vaya al Panel de control > Sistema y seguridad > Sistema y seleccioneConfiguración avanzada del sistema. Desde ahí verás un cuadro llamado Propiedades del sistema. Seleccione Variables de entorno. Aparece una ventana con los dos conjuntos de variables de entorno. En el conjunto superior, marcado "Variables de usuario para...", seleccione la entrada PATH y, a continuación, haga clic en el botón Editar. Aparecerá una ventana de edición. Haga clic en Nuevo y añada la ruta al cliente psql. Su ruta dependerá de donde PostgreSQL instalado, pero normalmente sería:

C:\Program Files\PostgreSQL\<POSTGRES_VERSION>\bin

Después, pulsa OK un par de veces para volver al escritorio. Inicie un nuevo símbolo del sistema y debería poder ejecutar psql.

psql Series de conexión

Las cadenas de conexión se muestran en el panel Endpoints de la vista general de la implantación y también se pueden recuperar desde el complemento CLI Cloud Databases y la API.

La información que necesita para establecer una conexión con psql está en la sección "cli" de las series de conexión. La tabla contiene un desglose para referencia.

información de conexión psql/cli
Nombre de campo Índice Descripción
Bin El binario recomendado para crear una conexión; en este caso es psql.
Composed Un mandato con formato para establecer una conexión con el despliegue. El mandato combina el ejecutable Bin, los valores de la variable Environment y utiliza Arguments como parámetros de línea de mandatos.
Environment Una lista de claves/valores que ha establecido como variables de entorno.
Arguments 0... La información que se pasa como argumentos al mandato que se muestra en el campo Bin.
Certificate Base64 Certificado propietario de un servicio que se utiliza para confirmar que una aplicación se está conectando al servidor adecuado. Está codificado en base64.
Certificate Nombre El nombre asignado para el certificado propietario del servicio.
Type El tipo de paquete que utiliza esta información de conexión; en este caso cli.
  • 0... indica que puede haber una o varias de estas entradas en una matriz.

Creación de una conexión de cliente de línea de mandatos

Antes de crear una conexión de cliente de línea de mandatos, asegúrese de que ha establecido la contraseña de administrador para el despliegue.

El mandato ibmcloud cdb deployment-connections gestiona todo lo relacionado con la creación de una conexión de cliente de línea de mandatos. Por ejemplo, para conectarse a un despliegue denominado "example-postgres", utilice el mandato siguiente:

ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN> --start

o

ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s

El mandato solicita la contraseña de administrador y, a continuación, ejecuta el cliente de línea de mandatos de psql para conectarse a la base de datos.

Si no ha instalado el plug-in Cloud Databases CLI, conéctese a sus bases de datos PostgreSQL utilizando psql dándole la cadena de conexión "composed". Proporciona variables de entorno PGPASSWORD y PGSSLROOTCERT. Establezca PGPASSWORD con la contraseña del administrador y PGSSLROOTCERT con la ruta o el nombre de archivo del certificado propietario del servicio.

PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=4a8148fa-3806-4f9c-b3fc-6467f11b13bd.8f7bfd7f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32325 dbname=ibmclouddb user=admin sslmode=verify-full'

Utilización del certificado propietario del servicio

  1. Copie la información del certificado del panel Puntos finales o del campo Base64 de la información de conexión.
  2. Si es necesario, decodifique la serie Base64 en texto.
  3. Guarde el certificado en un archivo. (Puede utilizar el Nombre que se proporciona o un nombre de archivo de su elección).
  4. Proporcione a la variable de entorno ROOTCERT la vía de acceso al certificado.

Puede mostrar el certificado decodificado para el despliegue con el plugin de CLI con el mandato:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

El mandato decodifica base64 en texto. Copie y guarde la salida del mandato en un archivo y proporcione la vía de acceso del archivo a la variable de entorno ROOTCERT.

Otra opción es añadir &sslrootcert=/path/to/cert a la serie de conexión, por ejemplo:

postgres://$USERNAME:$PASSWORD@6eb96148-90bc-49a0-a5a4-dc2b53334653.btdl8mld0r95fevivv30.databases.appdomain.cloud:32109/ibmclouddb?sslmode=verify-full&sslrootcert=/path/to/cert