Le serveur tourne-t-il sur l'hôte "localhost" (: 1) et accepte-t-il les connexions TCP/IP sur le port 5432?

avant toute chose, s'il vous plaît noter que j'ai trouvé plusieurs questions similaires sur le débordement de la pile et des articles partout sur le web, mais aucun de ceux qui m'ont aidé à corriger mon problème:

Maintenant, voici le problème:

  • j'ai une application Rails, qui fonctionne comme un charme.
  • avec mon collaborateur, nous utilisons GitHub pour travailler ensemble.
  • Nous avons un master et mvp les branches.
  • j'ai récemment mis à jour mon git version avec Homebrew (Mac).
  • nous utilisons Foreman pour démarrer notre application localement.

Maintenant, quand j'essaie de lancer l'application en local, j'ai le erreur:

PG::ConnectionBad at /
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

j'ai essayé de redémarrer mon ordinateur plusieurs fois.

j'ai aussi vérifié le contenu de /usr/local/var/postgres:

PG_VERSION      pg_dynshmem     pg_multixact    pg_snapshots    pg_tblspc       postgresql.conf
base            pg_hba.conf     pg_notify       pg_stat         pg_twophase     postmaster.opts
global          pg_ident.conf   pg_replslot     pg_stat_tmp     pg_xlog         server.log
pg_clog         pg_logical      pg_serial       pg_subtrans     postgresql.auto.conf

Comme vous pouvez le voir, il n'y a pas de postmaster.pid fichier.

une idée de comment je pourrais réparer ça?

17
demandé sur techdreams 2016-05-18 21:20:35

10 réponses

vous avez probablement manqué de batterie et votre serveur postgresql ne s'est pas éteint correctement.

la solution la plus simple est de télécharger l'application officielle postgresql et de la lancer: elle forcera le serveur à démarrer (http://postgresapp.com/)

23
répondu Graham Slick 2016-05-18 18:25:00

exécuter postgres -D /usr/local/var/postgres et vous devriez voir quelque chose comme:

FATAL:  lock file "postmaster.pid" already exists
HINT:   Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?

puis courir kill -9 PID INDICE

Et vous devriez être bon d'aller.

29
répondu user8376606 2018-01-11 20:33:02

C'est probablement parce que votre système s'est éteint de façon inattendue

postgres -D /usr/local/var/postgres

Vous pouvez voir

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?

Ensuite, essayez

kill -9 PID

exemple

kill -9 419

Et il devrait commencer postgres normalement

12
répondu Nishant 2017-11-15 17:41:41

Ce pourrait être aussi simple que le service postgresql est en baisse. Essayez de lancer:

sudo service postgresql start

qui a réglé le problème pour moi.

9
répondu Shiva89 2017-03-13 22:08:29

Cela a fonctionné dans mon cas:

brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
5
répondu Nathan 2017-05-02 03:01:21

si vous voulez redémarrer Postgresql sous Linux, vous devez utiliser la commande suivante.

/etc/init.d/postgresql restart

1
répondu coderanger 2017-10-30 00:53:29

j'ai résolu le problème par cette commande

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

parfois, vous pouvez obtenir cette erreur

pg_ctl: another server might be running; trying to start server anyway

Donc, essayez d'exécuter la commande suivante, puis exécuter la commande indiquée ci-dessus.

pg_ctl -D /usr/local/var/postgres stop
1
répondu techdreams 2018-07-10 06:49:05

je rencontre souvent ce problème sur windows,la façon dont j'ai résolu le problème, c'est le Service - Cliquez sur Serveur de Base de données PostgreSQL 8.3 - Cliquez sur le deuxième onglet "se connecter" - choisir la première ligne "compte système local".

0
répondu 管浩浩 2017-10-16 02:50:49

Cela a fonctionné pour moi: exécutez

sudo lsof -i :<port_number>

après cela, il affiche le PID qui est actuellement attaché au processus.

Après que run sudo kill -9 <PID>

si cela ne fonctionne pas, essayez la solution offerte par user8376606 il serait certainement travailler!

0
répondu codemonk 2017-10-25 12:32:48

cela peut être comme fichier pid créé pour postgress n'ont pas été supprimés en raison de l'arrêt inattendu. Donc pour corriger cela, supprimez ce fichier pid.

  1. Trouver le répertoire de données postgres. Sur un MAC utilisant homebrew il est /usr/local/var/postgres/, d'autres systèmes il pourrait être /usr/var/postgres/

  2. Supprimer le fichier pid

    rm maître de poste.pid

  3. redémarrez postgress. Sur Mac,

    redémarrage des services de brassage postgresql

0
répondu Aman Kumar 2018-06-29 06:12:09