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_monitor
que 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.
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
- Copie la información del certificado del panel Puntos finales o del campo Base64 de la información de conexión.
- Si es necesario, decodifique la serie Base64 en texto.
- Guarde el certificado en un archivo. (Puede utilizar el Nombre que se proporciona o un nombre de archivo de su elección).
- 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