13 votes

PostgresQL: comment démarrer le serveur de base de données et créer une base de données

Lorsque j'essaie d'exécuter un serveur :

postgres@ubuntu:~$ /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
LOG :  impossible de lier la socket IPv4 : l'adresse est déjà utilisée
INDICE :  Un autre postmaster est-il déjà en cours d'exécution sur le port 5432 ? Sinon, attendez quelques secondes et réessayez.
AVERTISSEMENT :  impossible de créer une socket d'écoute pour "localhost"
FATAL :  impossible de créer des sockets TCP/IP postgres@ubuntu:~$ 

Ensuite, je change d'utilisateur pour moi-même :

postgres@ubuntu:~$ su - michael

michael@ubuntu:~$  sudo netstat -tulpn | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      959/postgres 

Eh bien, il semble que postgres écoute sur le port et que cela soit le problème.

Passons à postgres et essayons de tuer ce processus :

postgres@ubuntu:~$ kill `cat /usr/local/pgsql/data/postmaster.pid`

La réaction est :

cat: /usr/local/pgsql/data/postmaster.pid: Aucun fichier ou dossier de ce type
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Pouvez-vous me recommander comment procéder ?

14voto

mbarthelemy Points 2414

Tout d'abord, obtenez l'identifiant PID de Postgres en cours d'exécution :

ps -ef | grep postmaster | grep -v grep | awk '{print $2}'

Ensuite, tuez-le

kill 

Mais à moins que vous ne cherchiez à faire quelque chose de très spécial avec Postgres (instances multiples...), vous devriez l'arrêter en utilisant sudo /etc/init.d/postgresql stop (ou sudo /etc/init.d/postgres stop) ET le démarrer en utilisant sudo /etc/init.d/postgresql start

Postgres s'exécute en tant que service, et donc il dispose d'un fichier/script de contrôle de service chargé de le démarrer et de l'arrêter correctement. Ces fichiers de contrôle étaient auparavant situés dans /etc/init.d, mais je dois admettre que cela devient un peu chaotique ces jours-ci, avec le nombre croissant de systèmes de gestion de services (init, upstart, systemd...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X