J'ai installé Postgresql 9.4.0 installé sur mon Mac (10.10.1/Yosemite) en utilisant homebrew. Ça ne marche pas.
J'ai créé le lien virtuel vers /usr/local/opt/postgresql/homebrew.mxcl.postgresql.plist dans ~/Library/LaunchAgents.
Si j'essaie de charger manuellement postgres, le message "Opération en cours" s'affiche.
> launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist: Operation already in progress
Cependant, postgres ne semble pas fonctionner.
> ps auxw | grep post
billmcn 670 0.0 0.0 2424272 452 s000 R+ 10:12PM 0:00.01 grep post
et je ne peux pas me connecter au client en ligne de commande.
> 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"?
À ma connaissance, j'ai essayé tous les correctifs suggérés sur les discussions otherStackoverflow traitant de ce problème. Plus précisément:
J'ai eu des postgres Homebrew travaillant sur cette machine plus tôt. Je pense que ce qui l’a cassé, c’est de passer de la version 8 à la version 9, mais je ne suis pas sûr.
Je n'ai aucune base de données à préserver. Je suis prêt à commencer propre avec postgres; J'ai juste besoin de le faire fonctionner maintenant. Des idées?
Le problème semble avoir été des autorisations sur le répertoire/usr/local/var/postgres. Voici à quoi ressemblait mon répertoire var quand les choses ne fonctionnaient pas.
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwxr--r-- 2 root admin 68 Dec 29 21:37 postgres
(whoami = "billmcn")
J'ai supprimé/usr/local/var/postgres, désinstallé et réinstallé postgres, et voici à quoi il ressemble.
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwx------ 23 billmcn admin 782 Dec 30 10:51 postgres
Pas sûr de savoir comment il est entré dans cet état parce que je ne me souviens pas d'avoir utilisé les permissions sur ce répertoire, mais peu importe. Ça fonctionne maintenant.
J'ai eu le même problème lors de l’installation de Postgres en utilisant l’homebrew sur un Yosemite fraîchement installé.
Tout d’abord, ma configuration de bière ressemble à ceci:
HOMEBREW_VERSION: 0.9.5
Origin: https://github.com/Homebrew/homebrew
HEAD: 9f6926265f8e4be7cc80dfe9042f2cd3c1e8dc9e
Last commit: 64 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit sandybridge
OS X: 10.10.1-x86_64
Xcode: 6.1.1
Clang: 6.0 build 600
X11: N/A
System Ruby: 2.0.0-481
Perl: /usr/bin/Perl
Python: /usr/bin/python
Ruby: ~/.rvm/rubies/Ruby-2.1.1/bin/Ruby
La première chose que j'ai remarquée, c'est que je n'avais pas d'autorisation d'écriture pour /usr/local/var/postgres
. Cela a été facilement changé en émettant Sudo chown -R `whoami` /usr/local/var/postgres
puis j'ai réinstallé postgresql et fait
cat /usr/local/var/postgres/server.log
qui a révélé:
postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory
J'ai donc supprimé le répertoire /usr/local/var/postgres
et a lancé la commande pour initialiser la base de données.
initdb -D /usr/local/var/postgres/
Cela semblait avoir fait l'affaire et postgres fonctionne bien.
J'ai eu le même problème. Le problème principal ici est que l'étape d'installation initdb créera le répertoire avec la propriété root plutôt que comme l'utilisateur sur un Mac. Pour résoudre ce problème:
Créez le répertoire de données avant d'exécuter initdb
et définissez les autorisations sur 0700
rm -rf /usr/local/var/postgres # in case this is not your first try
mkdir /usr/local/var/postgres
chmod 0700 /usr/local/var/postgres
Puis exécutez initdb
et il respectera les autorisations du répertoire de données.
initdb -D /usr/local/var/postgres
Pour les grimaces et les rires, créez une base de test nommée d'après votre utilisateur:
createdb `whoami`
Connectez-vous pour tester:
psql
Après avoir essayé d'installer postgresql avec Homebrew, j'ai obtenu ceci:
Warning: postgresql-9.5.2 already installed, it's just not linked
Alors j'ai essayé:
brew link postgresql
Et j'ai cette erreur:
Linking /usr/local/Cellar/postgresql/9.5.2...
Error: Could not symlink share/man/man3/SPI_connect.3
/usr/local/share/man/man3 is not writable.
Cela semblait être une question d’autorisation en écriture, alors j’ai fait:
Sudo chown -R `whoami` /usr/local/share/man/
Cela a fait l'affaire parce que j'ai pu faire (sans erreur):
brew link postgresql
Veuillez noter qu’il s’agit d’un fil de discussion sur le github de Homebrew traitant de ce problème: https://github.com/Homebrew/homebrew/issues/3524
J'ai eu un problème similaire. La réponse de James m'a aidé à le résoudre. Mais j’ai ensuite rencontré le problème mentionné par jbk (après avoir supprimé/usr/local/var/postgres, il a continué à être recréé).
Le problème est que si vous avez créé le lien symbolique:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
et a lancé le processus:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
vous devriez d'abord le décharger:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
avant d'exécuter les commandes de James.
rm -rf /usr/local/var/postgres # in case this is not your first try
mkdir /usr/local/var/postgres
chmod 0700 /usr/local/var/postgres
De plus, si, comme moi, vous avez un utilisateur administrateur qui gère homebrew et un utilisateur régulier qui utilisera pgsl à des fins de développement, la commande James devrait être exécutée en tant que super utilisateur:
Sudo -s
et la propriété du répertoire postgres doit être donnée à votre utilisateur dev:
chown my-dev-user /usr/local/var/postgres
La commande suivante, exécutée en tant qu'utilisateur dev, devrait alors renseigner correctement le répertoire:
createdb `whoami`
Fonctionnement:
psql -l
devrait vous montrer les tables et les autorisations des utilisateurs dans Postgre après de telles manipulations.
J'espère que cela t'aides.
Si quelqu'un a mis à jour une version précédente, n'oubliez pas de:
brew postgresql-upgrade-database
Cela résoudra le problème en mettant à niveau vos bases de données existantes vers la version que vous avez mise à niveau vers postgres.
Vérifiez @leo_chaz_maltrait pour corriger les erreurs, l'erreur Could not symlink share/man/man3/SPI_connect.3
Une autre erreur qui pourrait apparaître est:
Error: Could not symlink lib/pkgconfig/libecpg.pc
Sudo chown -R `whoami` /usr/local/lib/pkgconfig
brew link postgresql
Pour la postérité, j'avais ce problème et je voulais noter ce qui fonctionnait pour moi.
Je cours postgres 11.2 sur High Sierra. Je venais de mettre à jour Postgres 10 avec brew postgresql-upgrade-database
.
J'ai continué à avoir l'erreur psql: could not connect to server: No such file or directory
, Et mon server.log indiquait is another postmaster (PID 5894) running in data directory "/usr/local/var/postgres"?
J'ai essayé plusieurs solutions, y compris le redémarrage de mon ordinateur, la suppression de postmaster.pid
, L'utilisation de brew services restart postgres
, Mais en vain. Je suis finalement tombé sur la solution:
brew unlink postgresql && brew link postgresql
Aucune idée pourquoi cela a fonctionné, mais le mettre ici surtout pour que je puisse le référencer moi-même à l'avenir! Jeter des choses sur le mur jusqu'à ce qu'il colle!