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:
- erreur PG impossible de se connecter au serveur: connexion refusée le serveur tourne-t-il sur le port 5432?
- PG:: ConnectionBad - impossible de se connecter au serveur: connexion refusée
- psql: impossible de se connecter au serveur: Connexion refusé
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
etmvp
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?
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/)
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.
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
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.
Cela a fonctionné dans mon cas:
brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
si vous voulez redémarrer Postgresql sous Linux, vous devez utiliser la commande suivante.
/etc/init.d/postgresql restart
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
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".
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!
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.
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/
Supprimer le fichier pid
rm maître de poste.pid
redémarrez postgress. Sur Mac,
redémarrage des services de brassage postgresql