IBM Cloud Docs
Connexion avec psql

Connexion avec psql

Utilisez psql pour l'interaction directe et la surveillance des structures de données créées dans la base de données. psql est également utile pour tester et surveiller les requêtes et les performances, installer et modifier des scripts et d'autres activités de gestion.

L'utilisateur admin est doté du rôle par défaut PostgreSQL pg_monitorqui permet d'accéder aux vues et fonctions de surveillance de PostgreSQL. Par défaut, l'utilisateur admin n'a pas de droits sur les objets créés par d'autres utilisateurs.

Vous devez définir le mot de passe admin avant de l'utiliser pour vous connecter à la base de données. Pour plus d'informations, voir la page Définition du mot de passe d'administrateur.

Installation de psql

L'utilisation de psql nécessite que les outils client PostgreSQL soient installés sur le système local. Ils peuvent être installés avec le paquetage complet de PostgreSQL fourni par postgresql.org ou en tant que paquet à partir du gestionnaire de paquets de votre système d'exploitation.

Pour plus d'informations sur psql, voir la documentation PostgreSQL.

La plupart des instructions d'installation des outils PostgreSQL supposent que vous souhaitez que la base de données soit également installée. Il s'agit d'une hypothèse raisonnable si vous traitez avec des utilisateurs qui n'ont pas accès à PostgreSQL dans le cloud ou sur un serveur distant.

Voici les étapes à suivre pour installer psql en tant qu'outil autonome sur macOS, Linux, et Windows.

Installation de psql sous macOS avec Homebrew

Nous recommandons Homebrew comme gestionnaire de paquets pour macOS. Avec Homebrew, vous pouvez installer de nombreuses applications, généralement avec les programmes disponibles dans /usr/local/bin. Le package Homebrew pour les outils client PostgreSQL est le package libpq. Brew facilite l'installation:

brew install libpq

Il y a cependant une petite interception: libpq ne s'installera pas dans le répertoire /usr/local/bin. Pour que cela se produise, vous devez exécuter:

brew link --force libpq

Ce qui va lier symlink (un fichier qui pointe vers un autre fichier ou dossier) tous les outils, et pas seulement libpq, dans le répertoire /usr/local/bin.

Installation de postgresql-client sur Ubuntu

Les systèmes Linux, contrairement aux systèmes macOS,, disposent d'un gestionnaire de paquets intégré. Pour les distributions basées sur Ubuntu (et Debian), il s'agit de la commande apt. Le client PostgreSQL est distribué dans le logiciel nommé postgresql-client. Pour l'installer, exécutez une commande telle que :

sudo apt-get install postgresql-client

Ceci installera le client PostgreSQL.

Installation de postgresql-client sur Red Hat Enterprise Linux

Pour Red Hat Enterprise Linux (ou RHEL comme on l'écrit habituellement), il y a un peu plus de configuration qu'avec Ubuntu. Pour RHEL, le gestionnaire de paquets est Yum.

Tout d'abord, vous devez faire pointer Yum vers le référentiel PostgreSQL, comme ceci :

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

Yum se rend sur le site URL et se configure pour utiliser ce dépôt de paquets. Ceci fait, vous pouvez ajouter des paquets par nom :

sudo yum install postgresql15

Cette commande n'installe que les paquets clients. Si vous vous demandez où trouver ce référentiel URL, rendez-vous sur Linux Downloads ( Red Hat Family) où vous trouverez un formulaire qui vous permettra de sélectionner la version PostgreSQL, la plate-forme et l'architecture et qui vous donnera les instructions appropriées pour cette variante Red Hat- qui comprend CentOS, Scientific Linux, et Oracle Enterprise Linux. Il comprend également Fedora. Les dépôts par défaut de Fedora disposent déjà d'un client PostgreSQL. Pour Fedora 27 et 28 et plus, installez le client PostgreSQL à partir du terminal avec :

sudo dnf install postgresql.x86_64

Installation d'psql sous Windows

Pour Windows, utilisez le programme d'installation PostgreSQL d'Enterprise DB. Il s'agit d'un paquet d'installation complet pour PostgreSQL sur Windows, mais vous pouvez le configurer pour n'installer que les outils de ligne de commande comme psql. Sélectionnez votre PostgreSQL et les versions Windows. Une fois le fichier exécutable téléchargé, exécutez-le. Sélectionnez uniquement l'option Outils de ligne de commande, si vous n'avez pas besoin d'installer le serveur.

Après l'installation, vous configurez vos variables d'environnement Windows afin de pouvoir utiliser le client psql dans l'invite de commande. Allez dans le Panneau de configuration > Système et sécurité > Système et sélectionnez* Paramètres système avancés*. De là, vous voyez une boîte appelée Propriétés du système. Sélectionnez Variables d'environnement. Une fenêtre apparaît avec les deux ensembles de variables d'environnement. Dans l'ensemble supérieur, marqué "Variables utilisateur pour...", sélectionnez l'entrée PATH et cliquez sur le bouton Editer. Une fenêtre d'édition apparaît. Cliquez sur Nouveau et ajoutez le chemin d'accès au client psql. Votre chemin d'accès dépendra de l'endroit où PostgreSQL a été installé, mais il s'agit généralement du chemin suivant :

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

Ensuite, cliquez plusieurs fois sur OK pour revenir au bureau. Démarrez une nouvelle invite de commande et vous devriez être en mesure d'exécuter psql.

psql Chaînes de connexion

Les chaînes de connexion sont affichées dans le panneau Endpoints de la vue d'ensemble de votre déploiement et peuvent également être récupérées à partir du plug-in CLI Cloud Databases et de l'API.

Les informations dont vous avez besoin pour établir une connexion avec psql se trouve dans la section "cli" de vos chaînes de connexion. Le tableau ci-après est fourni à titre de référence.

informations sur la connexion psql/cli
Nom de zone Index Description
Bin Le binaire recommandé pour créer une connexion ; dans ce cas, il s'agit de psql.
Composed Commande formatée pour établir une connexion à votre déploiement. La commande combine l'exécutable Bin, les paramètres de la variable Environment et utilise Arguments comme paramètres de ligne de commande.
Environment Liste de clés/valeurs que vous définissez en tant que variables d'environnement.
Arguments 0... Informations qui sont transmises en tant qu'arguments à la commande affichée dans la zone Bin.
Certificate Base64 Certificat propriétaire de service utilisé pour confirmer qu'une application se connecte au serveur approprié. Il est encodé en base64.
Certificate Nom Nom attribué au certificat propriétaire du service.
Type Type de package qui utilise ces informations de connexion ; en l'occurrence, cli.
  • 0... indique qu'il peut y avoir une ou plusieurs de ces entrées dans un tableau.

Création d'une connexion client de ligne de commande

Avant de créer une connexion client de ligne de commande, vérifiez que vous avez défini le mot de passe d'administrateur pour votre déploiement.

La commande ibmcloud cdb deployment-connections gère tout ce qui est impliqué dans la création d'une connexion client de ligne de commande. Par exemple, pour établir une connexion à un déploiement nommé "example-postgres", utilisez la commande suivante :

ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN> --start

ou

ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s

La commande vous invite à entrer le mot de passe administrateur, puis à exécuter le client de ligne de commande psql pour vous connecter à la base de données.

Si vous n'avez pas installé le plug-in CLI Cloud Databases, connectez-vous à vos bases de données PostgreSQL à l'aide de psql en lui donnant la chaîne de connexion "composed". Il fournit des variables d'environnement PGPASSWORD et PGSSLROOTCERT. Définissez PGPASSWORD comme le mot de passe de l'administrateur et PGSSLROOTCERT comme le chemin d'accès ou le nom de fichier du certificat propriétaire du service.

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'

Utilisation du certificat de propriété du service

  1. Copiez les informations de certificat à partir du panneau Noeuds finaux ou de la zone Base64 des informations de connexion.
  2. Si besoin, décodez la chaîne Base64 en texte.
  3. Sauvegardez le certificat dans un fichier. (Vous pouvez utiliser le nom qui est fourni ou votre propre nom de fichier.)
  4. Indiquez le chemin d'accès au certificat à la variable d'environnement ROOTCERT.

Vous pouvez afficher le certificat décodé pour votre déploiement avec le plug-in d'interface de ligne de commande à l'aide de la commande suivante :

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

La commande décode le base64 en texte. Copiez et sauvegardez le résultat de la commande dans un fichier et indiquez le chemin du fichier à la variable d'environnement ROOTCERT.

Une autre option consiste à ajouter &sslrootcert=/path/to/cert à votre chaîne de connexion, par exemple :

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