Postgres n'a pas pu se connecter au serveur


417

Après avoir fait la mise à jour et la mise à niveau de la bière, mes postgres ont eu un problème. J'ai essayé de désinstaller postgres et de réinstaller, mais cela n'a pas fonctionné aussi bien.

Ceci est le message d'erreur. (J'ai également reçu ce message d'erreur lorsque j'essaie de faire râteau db: migrer)

$ 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"?

Comment puis-je le résoudre?

Version Mac: Mountain lion.

version homebrew: 0.9.3

version postgres: psql (PostgreSQL) 9.2.1

Et c'est ce que j'ai fait.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ 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"?

Maintenant, après avoir réinstallé howbrew, lorsque j'utilise $ psql, il n'affiche aucun message d'erreur.

Mais je cours rake db:migratedans mon application rails, ça montre:

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Enfin je trouve la solution.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Cette solution est peu délicate, mais elle fonctionne. J'espère que tout le monde a une meilleure solution

Mise à jour

Cela fonctionne aussi pour moi.

rm /usr/local/var/postgres/postmaster.pid

3
J'ai exactement le même problème, mais votre solution n'a pas fonctionné pour moi. Je pense que c'est un problème de permissions mais je n'ai pas la connaissance des permissions de fichiers pour le corriger.
ajbraus

Pour ceux qui installent PG via Homebrew et ont des problèmes, j'ai trouvé une autre réponse. Désinstallez simplement pg gem et réinstallez-le avec les configurations Homebrew. Voir la réponse sur stackoverflow.com/a/19609228/1072058 .
zquintana


1
Lancez postgres.
atw

4
Mettez à niveau votre version existante vers la version plus récente avec la commande suivante brew postgresql-upgrade-database

Réponses:


800

Eu un problème similaire; un fichier pid bloquait le démarrage de postgres. Réparer:

rm /usr/local/var/postgres/postmaster.pid

et puis tout va bien.


4
Cela a fonctionné pour moi sur OSX Mavericks après avoir vu ce problème lors d'une mise à jour / redémarrage.
eprothro

3
@jstafford merci, j'ai déjà résolu! :) La solution était de désinstaller via homebew puis de redémarrer mon ordinateur tout de suite, donc je pourrais réinstaller postgres. L'ancienne version fonctionnait en arrière-plan, créant des fichiers et des conflits à chaque fois que j'essayais de réinstaller postgres.
betoharres

199
Cela n'a pas fonctionné pour moi sur Mavericks:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
Cela a fonctionné pour moi, après avoir effacé j'ai dû commencer les postgres. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
Ricardo Castañeda

12
Je recommande de réduire le journal du serveur pour vous assurer qu'il s'agit bien du problème:tail /usr/local/var/postgres/server.log
Josh Bodah

255

Cela peut parfois être un problème avec une mise à niveau postgres.

Dans mon cas, cela s'est produit lors de la mise à niveau de 9.3 vers 9.4.

Voir http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / Homebrew:

Essayez postgres -D /usr/local/var/postgresde lancer - cela vous donnera une sortie beaucoup plus détaillée si postgres ne démarre pas.

Dans mon cas, l'exécution a rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8supprimé mes anciennes bases de données, puis a réinitialisé le schéma db postgres.

Merci à https://github.com/Homebrew/homebrew/issues/35240 pour cette solution.

Après avoir régénéré mes bases de données (avec rake db:create) tout a bien fonctionné à nouveau.


1
Cela a fonctionné pour moi avec un post-gres homebrew installé sur Yosemite.
cpursley

7
Si l'exécution postgres -D /usr/local/var/postgresvous indique que le répertoire de données a été initialisé avec une version antérieure et incompatible de Postgres, et que vous ne voulez pas perdre vos données locales, vous pouvez essayer ce fil
Nathan Long

Après l'exécution de la commande ci-dessus, j'ai exécuté: pg_ctl -D /usr/local/var/postgres -l logfile startpuis mon serveur a démarré en arrière
Tommyixi

5
Utilisez brew services start postgressur OSX pour démarrer les postgres en arrière-plan au lieu depostgres -D /usr/local/var/postgres
Mike Andrianov

1
@coffekid J'ai eu le même problème et l'ai résolu avec les instructions ici: stackoverflow.com/questions/24379373/…
Micah Walter

69

Trouvé une solution qui a fonctionné pour moi ici:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

Vous exécutez essentiellement la commande suivante pour démarrer manuellement le serveur:

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

8
De toutes les réponses, c'est la seule qui a fonctionné pour moi. Utilisation d'El Capitan
Patrick_870206

J'ai essayé avec ce cmd mais ne fonctionne pas pour moi !!
Harshit Trivedi

41

Si l'installation et la désinstallation de postgres avec brew ne fonctionne pas pour vous, consultez les journaux de votre installation de postgresql ou:

postgres -D /usr/local/var/postgres

si vous voyez ce type de sortie:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

Essayez ensuite ce qui suit:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Démarrez ensuite le serveur:

pg_ctl -D /usr/local/var/postgres -l logfile start

La source


2
Cela fonctionne lorsque la raison est différente de la réponse acceptée, c'est-à-dire que les fichiers de base de données ne sont pas compatibles avec la version actuelle. Puisque c'est exactement mon problème, j'ai voté.
Falk Schuetzenmeister

1
cette commande fonctionne pour moi.
Ccr

travaille pour Mojave 10.14.6
Sgryt87

34

Sur Yosemite, si le fichier pid empêche Postgres de démarrer et que vous avez un launchctldémon essayant (et échouant) de charger les démons de base de données, alors vous devrez décharger le fichier plist:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Ensuite, supprimez le fichier pid

$ rm /usr/local/var/postgres/postmaster.pid

Rechargez ensuite le launchctldémon

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

Pour toute personne lisant ceci et utilisant Postgres.app, vous devrez peut-être host: localhostdans votre database.yml. http://postgresapp.com/documentation#toc_3


Cette opération modifie la connexion d'un socket à une connexion TCP, ce qui peut avoir des implications négatives. Voir stackoverflow.com/questions/6770649/…
Brett Bim

1
Hmm, en fait, si vous votez ... Peut-être ne dites pas pourquoi? meta.stackoverflow.com/questions/252297/… Ou peut-être dites pourquoi, mais déconnectez-vous d'abord afin que vous soyez anonyme.
David Winiecki

Je pense que le vote négatif est dû au fait que la question initiale n'était pas pour Postgres.app mais Homebrew. Ainsi, bien que la réponse puisse être utile quelque part, elle ne répond pas à la question.
Brian Dear

Le lien ne semble aller nulle part (et la recherche de "localhost" dans le passé n'a aucun résultat) mais cela a juste résolu le problème pour moi après une heure de recherche.
sixty4bit

25

La mise à niveau de la base de données fonctionne pour moi

brew postgresql-upgrade-database


👍✅⭐️🙏Merci Tomer! Cela a fonctionné pour moi 6/2/20 mise à niveau de 9.4 à 12 sur macOS Mojave 10.14.6
Rob Bednark

19
brew services start postgres 

travaillé pour moi!


17

Vérifiez que le fichier socket existe.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Si ce n'est pas le cas, vérifiez dans votre postgresql.conf la modification d'unix_socket_directory.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
Ceci est ma réponse informatique. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai

29
Enfin je trouve la solution. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Cette solution est peu délicate, mais elle fonctionne. J'espère que tout le monde a une meilleure solution
Gary Lai

beau travail @GaryLai. Très étrange que je n'ai pas eu à faire de même avec mon homebrew postgresql
jrwren

2
cela peut aider certaines personnes: github.com/mxcl/homebrew/issues/14527
AdamT

14

Le problème peut également être attribué à un processus en panne qui a laissé le fichier postmaster.pid derrière. Je fais cela et je travaille:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

La façon la plus infaillible de contourner cela est de faire

brew reinstall postgresql

Cela gardera votre autorisation d'utilisateur, etc. tout intact et tout sera réinitialisé à nouveau. Fonctionne tout le temps!


travaillé comme un champion !!!! Tout cela était nécessaire.
Akash K

Cela fonctionne mais je recommande que si rm /usr/local/var/postgres/postmaster.pidsur mac os ne fonctionne pas, utilisez cette commande.
Yaseen Ahmad Il y a

10

Le problème est dû au fait qu'il existe déjà un service en cours d'exécution sur le port 5432 et que nous ne pouvons pas établir de connexion de socket psql via ce port.

J'ai supprimé le fichier socket

rm -rf /tmp/.s.PGSQL.5432/

Ensuite, j'ai réinitialisé les services postgres

postgres -D /usr/local/var/postgres

Cela a fonctionné pour moi.


7

Changer les paramètres de configuration postresql ou database.yml, changer $ PATH ou créer des liens symboliques n'était pas nécessaire pour moi. Tout ce que je devais faire était gem uninstall pget puis bundle(ou gem install pg).

Le problème était que le pg gem avait été installé avant les postgres homebrew, tout comme les paramètres de la version de postgres fournie avec MacOS. La réinstallation (et donc la reconstruction de l'extension native) a résolu le problème.


Je voulais juste dire merci. Je viens de mettre à niveau PostgresApp sur macOS et bien que je puisse me connecter en utilisant psql, je ne pouvais pas me connecter via des rails. désinstaller et réinstaller le gem pg était juste le ticket! :)
craig1410

7

Cela m'est arrivé lors de la mise à niveau de la version 9.3.4 vers la version 9.5, car les bases de données sont incompatibles sans mise à niveau.

J'ai utilisé pg_upgrade comme suit:

Arrêtez les postgres

$ brew services stop postgresql

Mettez à niveau les bases de données:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Archivez les anciennes bases de données:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Redémarrez les postgres:

 $ brew services start postgresql

Gems mis à jour (pour les rails / enregistrement actif):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

Ces instructions se trouvent également sur collectiveidea.com/blog/archives/2016/01/08/… , et ont toujours fonctionné pour moi aujourd'hui lors de la mise à niveau de 9.4.0 vers 9.6.3. Je n'avais rien à faire manuellement sur le fichier .pid.
Jan Hettich

7

C'est en fait ce que vous êtes censé faire:

vous devriez plutôt regarder /usr/local/var/postgres/postmaster.pid

puis regardez la première ligne du fichier - c'est le mauvais PID

Courir

ps aux | grep <PID>

par exemple:

ps aux | grep 12345

alors fais

kill <PID>

par exemple

kill 12345

En supposant qu'il fonctionne toujours

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

n'écoutez pas la réponse acceptée elle est mauvaise et corrompra vos données !!!


Merci, cela a fonctionné pour moi. Supprimer le postmaster.pid dans la réponse acceptée n'était pas suffisant.
Abe Petrillo

4

Option psql

-h nom d'hôte --host = nom d'hôte

: Spécifie le nom d'hôte de la machine sur laquelle le serveur s'exécute. Si la valeur commence par une barre oblique, elle est utilisée comme répertoire pour le socket de domaine Unix.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Exécutez psql avec l'option -host

$ psql -p 5433 -h /var/run/postgresql

Pas besoin de faire un lien doux


4

Nous avons également rencontré ce problème sur MacOS Sierra et lorsque nous avons exécuté pg_ctl comme décrit ci-dessus, nous avons ensuite eu l'erreur suivante pg_ctl: no database directory specified and environment variable PGDATA unset. Nous avons donc suivi les étapes ici qui ont résolu notre problème, à savoir:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

Si postgres a été installé en utilisant homebrew, vous pouvez résoudre ce problème en exécutant:

brew link postgres


4

Si vous arrêtez votre système sans quitter psql, postgres n'aurait pas supprimé certains fichiers.

Je n'ai pas trouvé le fichier postmaster.pid à l'emplacement usr / local / var / postgres

J'ai donc fait ce qui suit:

les services de brassage commencent postgresql

La commande ci-dessus devrait vous permettre de démarrer postgres


3

J'ai rencontré ce problème après avoir essayé de restaurer / supprimer / créer une base de données alors que d'autres processus y accédaient. Le correctif MacOSX / Homebrew était:

  1. fermez tous les autres processus accédant rails server, rails console, guard, etc ...
  2. charger / décharger en utilisant les commandes trouvées dans brew info postgres
  3. exécuter la restauration / suppression / création d'avant

3

FWIW, cela m'est arrivé aujourd'hui, mais ce qui s'est passé, c'est que j'exécutais des mises à jour Ubuntu à l'époque, qui mettaient probablement à jour Postgres. Une fois la mise à jour terminée, j'ai pu me connecter sans accroc.

Par souci d'exhaustivité, j'essayais de récupérer des enregistrements de la base de données à partir d'une console Rails:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

3

Il semble que votre psql ne fonctionne pas. Vous devez l'exécuter avant de vous connecter. Vous ne pouvez le faire qu'en utilisant Postgres.app pour Mac OS uniquement. (Téléchargez et installez cette application http://postgresapp.com ) Ouvrez l'application et vous avez un serveur PostgreSQL prêt et en attente de nouvelles connexions. Fermez l'application et le serveur s'arrête. Vous pouvez également trouver ces informations ici http://www.postgresql.org/download/macosx/ . J'espère que cela vous aidera.


1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change.
Kmeixner

La question faisait spécifiquement référence à une installation homebrew et non à une installation Postgres.app. Bien que cette réponse soit utile, elle ne répond pas à la question. Ce serait comme dire "Utilisez plutôt MySQL".
Brian Dear

3

C'est parce qu'un serveur précédent est toujours en cours d'exécution, essayez de tout fermer et de relancer votre application.


3

Pour ceux qui utilisent cette commande et ne fonctionnent pas ou le fichier n'est pas là et utilise Ruby on Rails

rm /usr/local/var/postgres/postmaster.pid

Ou toute autre commande et continue d'échouer.

J'ai résolu ce problème de désinstallation avec Brew. J'ai dû désinstaller avec brew 2 fois, car lors de la première désinstallation, il restera une autre version de postgresql, avec la deuxième désinstallation, le processus sera terminé.

Installer PostgreSQL avec Brew

Puis déposez, créez et migrez les bases de données du projet

(N'oubliez pas de démarrer le serveur postgresql)


3

J'ai le même problème parce que j'utilise un mauvais nom d'utilisateur Postgres dans le code. Je me suis connecté à postgres psql -d postgreset j'entre \dupour prendre le nom du rôle et corriger le nom d'utilisateur de Postgres.

Donc, lorsque vous êtes confrontés à ce problème, vous devez vous assurer que vous utilisez le nom d'utilisateur, le mot de passe, le nom d'hôte et la base de données Postgres corrects ...

J'espère que cela aidera n'importe qui


3

¿Avez-vous récemment changé le pg_hba.conf? si vous venez de vérifier toute faute de frappe:

"local" concerne uniquement les connexions socket de domaine Unix

local tout tout mot de passe

Connexions locales IPv4:

héberger tous tous les mots de passe 127.0.0.1/32

Connexions locales IPv6:

hébergez tous tous :: 1/128 mot de passe

Parfois, une simple erreur peut nous donner mal à la tête. J'espère que cette aide et désolé si mon anglais n'est pas bon du tout.


3

Cela se produit lorsque le serveur postgres n'est pas en cours d'exécution. Étapes pour installer correctement Postgres via Homebrew sur MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Cela initialise postgres pour utiliser le répertoire donné comme répertoire de base de données. Normalement, il n'est pas conseillé d'utiliser le répertoire utilisateur pour le stockage de la base de données. Modifier le fichier sudoers pour ajouter initdb et des commandes similaires, puis exécuter initdb sur / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Après avoir réussi l'étape 2, il vous demandera d'exécuter l'étape 3. Cette commande démarre manuellement le serveur.]


2

J'ai cette même erreur. Il s'avère que les postgres ne fonctionnaient tout simplement pas (il est généralement toujours exécuté en arrière-plan, mais pour une raison quelconque, ce n'était pas le cas aujourd'hui).

Si tel est le cas, tapez simplement postgresla ligne de commande de votre répertoire de projet


2

Après une énorme quantité de va-et-vient, c'est vraiment la pgversion gem que j'utilisais. Sur mavericks, la pgversion 0.15.1ne se connecterait pas au port 5432 mais la version 0.17.1fonctionne très bien - très étrange.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.