1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# Aide-Mémoire Diagnostic PostgreSQL
Ce fichier regroupe les commandes essentielles pour diagnostiquer les problèmes de connexion, de droits et de performance sur PostgreSQL.
## 1. Connexion au serveur (Ligne de commande)
Se connecter en tant que super-administrateur (localement) :
```bash
sudo -u postgres psql
```
Tester une connexion distante (depuis une autre machine) :
```bash
# -h = hôte, -U = utilisateur, -d = base de données, -W = demander le mot de passe
psql -h 192.168.99.35 -U lucien -d medusa_db -W
```
## 2. Commandes d'Inspection (dans psql `postgres=#`)
### Utilisateurs et Droits
| Commande | Description |
| :--- | :--- |
| `\du` | Liste tous les utilisateurs et leurs rôles (Superuser, Create DB, etc.). |
| `\du+` | Même chose avec plus de détails (description). |
| `SELECT current_user;` | Affiche l'utilisateur avec lequel vous êtes connecté. |
### Bases de données
| Commande | Description |
| :--- | :--- |
| `\l` | Liste toutes les bases de données et leurs propriétaires. |
| `\c ma_base` | Se connecter à la base `ma_base`. |
| `\dt` | Liste les tables de la base courante. |
### Configuration et Fichiers
| Commande | Description |
| :--- | :--- |
| `SHOW config_file;` | Affiche le chemin du fichier `postgresql.conf`. |
| `SHOW hba_file;` | Affiche le chemin du fichier `pg_hba.conf` (règles de connexion). |
| `SHOW listen_addresses;` | Affiche les IPs écoutées (doit être `*` pour accès distant). |
| `SHOW port;` | Affiche le port (défaut 5432). |
| `SHOW password_encryption;` | Affiche l'algorithme de hachage (souvent `scram-sha-256` ou `md5`). |
## 3. Diagnostic des Connexions Actives
Voir qui est connecté et ce qu'ils font :
```sql
SELECT pid, usename, client_addr, state, query
FROM pg_stat_activity
WHERE state != 'idle';
```
Voir les connexions bloquées :
```sql
SELECT pid, usename, query
FROM pg_stat_activity
WHERE wait_event_type = 'Lock';
```
## 4. Gestion des Mots de Passe
Si vous avez un doute sur un mot de passe ou une méthode de chiffrement (md5 vs scram), la meilleure solution est de le redéfinir :
```sql
-- Réinitialiser le mot de passe
ALTER USER nom_utilisateur WITH PASSWORD 'nouveau_mot_de_passe';
```
## 5. Problèmes Courants `pg_hba.conf`
Si vous avez l'erreur `no pg_hba.conf entry for host...`, vérifiez le fichier `pg_hba.conf`.
1. Ouvrir le fichier (chemin obtenu via `SHOW hba_file;`).
2. Vérifier la présence d'une ligne comme :
```text
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 scram-sha-256
```
3. **IMPORTANT** : Après toute modification, recharger la config :
```bash
sudo systemctl reload postgresql
```
|