PostgreSQL
Guide pour installer et lancer PostgreSQL avec Docker
Installation avec Docker
La méthode la plus simple pour lancer PostgreSQL est d'utiliser Docker avec un repository préconfiguré.
1. Cloner le repository
Clonez le repository Docker PostgreSQL générique :
git clone https://github.com/NOTLimai/postgres_generic_docker.git
cd postgres_generic_docker2. Configuration
Modifiez le fichier .env ou docker-compose.yml selon vos besoins :
- POSTGRES_USER : Utilisateur PostgreSQL
- POSTGRES_PASSWORD : Mot de passe
- POSTGRES_DB : Nom de la base de données
- Port : Port d'exposition (par défaut 5432)
3. Lancer le conteneur
Démarrez PostgreSQL avec Docker Compose :
docker-compose up -d4. Vérifier le statut
Vérifiez que le conteneur est en cours d'exécution :
docker-compose ps5. Se connecter à PostgreSQL
Pour accéder au shell PostgreSQL :
docker-compose exec postgres psql -U postgresOu depuis votre application, utilisez les paramètres de connexion :
Host: localhost
Port: 5432
Database: votre_database
User: votre_user
Password: votre_password6. Arrêter le conteneur
Pour arrêter PostgreSQL :
docker-compose downPour arrêter et supprimer les données :
docker-compose down -vInstallation locale (sans Docker)
Sur Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresqlSur macOS
brew install postgresql
brew services start postgresqlSur Windows
Téléchargez et installez PostgreSQL depuis le site officiel.
Commandes utiles
Gestion du service
# Démarrer PostgreSQL
sudo systemctl start postgresql
# Arrêter PostgreSQL
sudo systemctl stop postgresql
# Redémarrer PostgreSQL
sudo systemctl restart postgresql
# Statut de PostgreSQL
sudo systemctl status postgresqlCommandes PostgreSQL (psql)
-- Lister les bases de données
\l
-- Se connecter à une base de données
\c nom_database
-- Lister les tables
\dt
-- Lister les schémas
\dn
-- Créer une base de données
CREATE DATABASE nom_database;
-- Créer un utilisateur
CREATE USER username WITH PASSWORD 'password';
-- Donner tous les privilèges
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;
-- Quitter psql
\qCommandes Shell
# Se connecter en tant qu'utilisateur postgres
sudo -u postgres psql
# Créer une base de données depuis le shell
createdb nom_database
# Supprimer une base de données
dropdb nom_database
# Sauvegarder une base de données
pg_dump nom_database > backup.sql
# Restaurer une base de données
psql nom_database < backup.sqlProblèmes courants
Port déjà utilisé
Si le port 5432 est déjà utilisé, modifiez le port dans docker-compose.yml :
ports:
- "5433:5432"Connexion refusée
Vérifiez que le conteneur est en cours d'exécution et que les credentials sont corrects.
Réinitialiser le mot de passe
Avec Docker :
docker-compose exec postgres psql -U postgres
ALTER USER postgres WITH PASSWORD 'nouveau_password';Erreur d'authentification
Modifiez le fichier pg_hba.conf pour autoriser les connexions (avec Docker, c'est généralement déjà configuré).
Connection String
Format de la chaîne de connexion PostgreSQL :
postgresql://username:password@localhost:5432/database_nameExemple pour différents frameworks :
# Django
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
# Node.js (Prisma)
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
# Laravel
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=mydb
DB_USERNAME=user
DB_PASSWORD=password