J'ai installé PostgreSQL via MacPorts, mais impossible d'y accéder
Comme je l'ai dit dans le titre, j'ai installé PostgreSQL usind MacPorts, mais ne peuvent pas y accéder.
Le processus d'installation a été
$ sudo port install postgresql83-server
$ sudo mkdir -p /opt/local/var/db/postgresql83/webcraft
$ sudo chown postgres:postgres /opt/local/var/db/postgresql83/webcraft
$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/webcraft'
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist
Mon CHEMIN
/opt/local/lib/postgresql83/bin:/opt/local/lib/mysql5/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
J'essaie de me connecter au serveur à l'aide de psql client
$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Voici quelques informations
$ ps ax | grep postgres | grep -v grep
52 ?? Ss 0:00.00 /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
- Après le redémarrage du système
launchctl list | grep macport
ne retourne rien. Pourquoi? - Je vais installer PostgreSQL vue Homebrew.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayez de lancer:
J'imagine psql est toujours référencement
/usr/bin/psql
, et les macports version de psql est suivie par le numéro de version, dans votre cas psql83. Vous pouvez alias psql pour psql83 comme une simple solution de contournement. Mieux serait de changer la valeur par défaut:Qui permettront de faire le bon acheminement.
Il y a une solution très simple à ce problème, mais ce n'est pas bien documentée, à mon avis:
MacPorts encourage l'installation de leur
*_select
ports de gérer plusieurs versions de logiciel (dites que vous voulez Postgres93 et Postgres94 en même temps). C'est une grande fonctionnalité, mais il ajoute une étape supplémentaire qui est pour une raison très rarement mentionné dans les docs:De nombreuses tentatives infructueuses au démarrage du serveur plus tard..
Bien qui ne peut pas être bon!
Tu te moques de moi. Maintenant, il est en cours d'exécution?
Simplement l'installation de Postgres n'est pas entièrement la configuration des liens symboliques pour le rendre facilement praticable. L'installation de
postrgresql_select
donne MacPorts les informations dont il a besoin pour le faire viaport select
. Une fois que vous avez sélectionné la version active de votre choix, à partir de la Posgres serveur vialuanchctl
est aussi facile que deport load postgresqlXX-server
.Je sais que c'est un très réponse tardive et ne répond pas à votre question, mais launchctl aura des résultats différents selon si vous êtes super-utilisateur ou pas.
Essayer de faire:
sudo launchctl list | grep postgres
J'ai eu exactement le même problème sur mon MacBook Pro. J'ai pu résoudre le problème après j'ai roulé ce blog ici et tous les commentaires:
http://benscheirman.com/2010/06/installing-postgresql-for-rails-on-mac-os-x
Le Problème est que postgres n'est pas vraiment en cours d'exécution. J'ai reconnu cette après j'ai fait un scan de ports à ma propre machine et j'ai réalisé que rien n'est en cours d'exécution sur le Port 5432.
J'ai créé un petit script "start_pg_server.sh":
après l'exécution de ce script, le serveur était en marche et j'ai pu me connecter avec pgAdmin. J'ai aussi été en mesure d'exécuter mon ruby trucs avec rake db:créer et de rake db:migrate.
Après j'ai restauré à l'aide de Timemachine j'ai eu le même problème.
La raison en était que les autorisations ont été déformés et postgres n'a pas pu écrire le fichier pid.
L'exécution de cette résolu pour moi:
Avez-vous, par hasard, créer votre utilisateur postgres avec une coquille de /usr/bin/false? Si oui, le script de démarrage ne fonctionne pas car il utilise su qui passe les commandes de l'envoyer à travers la coquille.
Si vous n'avez définie dans /usr/bin/false, essayez de la remplacer par /bin/bash et qui pourrait arranger les choses.