1041 votes

Comment faire pour démarrer le serveur postgresql sous mac os x

DERNIÈRE MISE À JOUR:

J'ai oublié de lancer la commande initdb....

< /DERNIÈRE MISE À JOUR>

en exécutant cette commande

ps auxwww | grep postgres

je vois que postgres est pas en cours d'exécution

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

cela soulève la question: Comment puis-je démarrer le serveur postgresql?

mise à jour:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

update2:

Le tactile n'a pas réussi donc j'ai fait ceci à la place:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/          
server.log

mais quand j'essaie de démarrer le serveur rails, je vois encore ce:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

update3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

update4:

J'ai trouvé qu'il n'y A PAS de pg_hba.conf (seulement pg_hba.conf.de l'échantillon) j'ai donc modifié l'échantillon et l'a renommé (pour enlever l' .de l'échantillon). voici le contenu:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

mais je ne comprends pas ceci:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start     
server starting
> pg_ctl -D /usr/local/var/postgres status                                     
pg_ctl: no server running

aussi:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

update5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

update6:

ce qui semble étrange:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

cependant, j'ai fait ceci:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

j'ai donc fait ceci:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample 
#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

j'ai donc essayé ceci:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf        
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf 

toujours la même chose "le serveur Est en cours d'exécution?"....

1919voto

JamesA Points 14729

Le Homebrew gestionnaire de package comprend launchctl plists pour démarrer automatiquement. Pour plus d'informations exécuter brew info postgres.

Démarrer manuellement:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Arrêter manuellement:

pg_ctl -D /usr/local/var/postgres stop -s -m fast


Quel est le résultat de l' pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start?

Quel est le résultat de l' pg_ctl -D /usr/local/var/postgres status?

Existe-il des messages d'erreur dans le serveur.journal?

Assurez-vous que tcp localhost connexions sont activées dans pg_hba.conf:

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

De vérifier la listen_addresses et le port dans postgresql.conf:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)

Nettoyage

Postgres était probablement installé via Homebrew, Fink, MacPorts ou la EnterpriseDB programme d'installation.

Vérifiez la sortie des commandes suivantes pour déterminer laquelle le gestionnaire de package a été installé avec:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

404voto

marcqz Points 1

Si vous voulez manuellement, démarrer et arrêter postgresql (installé via homebrew), le plus simple est :

et

184voto

Yan Points 16

J’ai eu presque exactement le même problème, et vous avez cité la commande initdb comme étant le repère. C’est également la solution pour moi, mais je n’ai vu que quelqu'un posté ici, donc pour ceux qui sont à la recherche d’elle :

80voto

pisaruk Points 483

Une autre approche est l’utilisation de perle lunchy.

Pour lancer postgres :

Pour arrêter le postgres :

Pour plus d’informations, se référer à : «Comment installer PostgreSQL sur un Mac avec Homebrew et Lunchy»

74voto

Kenial Points 548

Ici mes 2 cents : J’ai fait un alias pour postgres pg_ctl et mettez-le dans .bash_profile (ma version de postgresql est 9.2.4 et chemin d’accès de base de données est /Library/PostgreSQL/9.2/data).

Lancer le nouveau terminal.

Et puis ? Vous pouvez démarrer/arrêter votre serveur postgresql avec ceci :

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