Après avoir installer Apache 2.2 à l’aide de MacPorts, poursuivons avec l’installation de PostgreSQL 8.3.
Nous considérons que MacPorts est installé et configuré (voir ici dans le cas contraire).
Recherchez le nom du paquet qui correspond à la version 8.3 de PostgreSQL.
port search postgresql
Deux noms de paquets correspondent à la version 8.3 de PostgreSQL :
- « postgresql83″ qui est le client
- « postgresql83-server » qui est le serveur
Le client est installé automatiquement lorsqu’on installe le serveur.
Pour connaitre toutes les options d’installation, tapez la commande suivante :
port variants postgresql83-server
Nous allons installer PostgreSQL 8.3 avec les options d’installation par défaut :
sudo port install postgresql83-server
MacPorts crée automatiquement l’utilisateur « postgres », pour connaître les détails sur cet utilisateur, utilisez la commande ci-dessous :
dscl . -read /Users/postgres // Affiche : ppleMetaNodeLocation: /Local/Default GeneratedUID: A20245E7-.... NFSHomeDirectory: /opt/local/var/db/postgresql83 Password: * PrimaryGroupID: 500 RealName: PostgreSQL-83\ Server RecordName: postgres RecordType: dsRecTypeStandard:Users UniqueID: 500 UserShell: /bin/sh
MacPorts n’initialise pas PostgreSQL, il est nécessaire d’effectuer l’initialisation manuellement :
sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'
MacPorts crée automatiquement le fichier « plist » du système de gestion du démarrage des programme, voici son contenu :
Label org.macports.postgresql83-server ProgramArguments /opt/local/bin/daemondo --label=postgresql83-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper restart ; --pid=none Debug Disabled OnDemand RunAtLoad
Par défaut, PostgreSQL ne sera pas lancé au démarrage.
- Si vous souhaitez que PostgreSQL soit lancé au démarrage, lancez la commande suivante :
// Le fichier "plist" sera modifié automatiquement sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist
- Dans le cas contraire, il faudra charger le fichier manuellement :
sudo launchctl load -F /Library/LaunchDaemons/org.macports.postgresql83-server.plist
Dans le cas où vous en souhaitez pas lancer automatiquement PostgreSQL au démarrage, créer des alias rend le contrôle manuel du serveur PostgreSQL plus simple. Pour cela, nous allons ajouter quelques lignes à notre fichier de configuration de shell.
cd ~ nano .profile // Ajoutez les lignes suivantes // Pour faire simple, on utilise directement le fichier "plist" et donc Launchd alias pgstart='sudo launchctl load -F /Library/LaunchDaemons/org.macports.postgresql83-server.plist' alias pgstop='sudo launchctl unload /Library/LaunchDaemons/org.macports.postgresql83-server.plist'
Pour vérifier le bon fonctionnement de PostgreSQL, nous pouvons utiliser :
- le client texte en ligne de commande : « psql »
- un client graphique commePgAdmin III (gratuit)
Pour utiliser la ligne de commande, il est souhaitable d’ajouter un fichier de configuration de Shell pour l’utilisateur « postgres ».
sudo nano /opt/local/var/db/postgresql83/.profile // Contenu du fichier : export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/lib/postgresql83/bin:$PATH // Changez les propriétaires du fichier sudo chown postgres:postgres /opt/local/var/db/postgresql83/.profile
Testons rapidement PostgreSQL en ligne de commande :
A titre de mémo, l’anti slash s’obtient avec la combinaison de touches suivante :
[SHIFT]+[ALT]+[ : / ]
// Démarrer le server
pgstart
// Passer sous l utilisateur "postgres"
sudo su - postgres
// Se connecter au serveur sans préciser de base de données
psql
// Connaitre l aide
\?
// Lister les bases de données
\l
// Affiche
List of databases
Name | Owner | Encoding
-----------+----------+----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 rows)
// Quitter
\q
// Quitter l utilisateur "postgres"
exit
// Stopper Postgres
pgstop
L’utilisation du client en ligne de commande est très pratique et sa connaissance est parfois indispensable. Cependant, lorsque vous travaillez en local, un client graphique comme PgAdmin III remplace la ligne de commande pour bien des tâches. Son utilisation est triviale, vous pouvez le télécharger à cette adresse.
Bonjour,
Tout d’abord merci beaucoup pour cet article bien utile ! Je voudrai changer les options de log dans postgres et je n’y arrive pas… Il y a bien un fichier /opt/local/var/log/postgresql83/postgres.log. J’ai créé un fichier postgresql.conf en recopiant et en modifiant postgresql.conf.sample, puis redémarré postgresql, mais ça ne change pas grand chose…
Des idées ?
Merci
Bonjour,
Le fichier de configuration de PostgreSQL est créé lors de la phase d’initialisation du serveur (cf. initdb).
« sudo nano /opt/local/var/db/postgresql83/defaultdb/postgresql.conf »
Voilà, je pense que cela répondra à votre problème.
Fabien