web-dev-qa-db-fra.com

PG :: ConnectionBad - impossible de se connecter au serveur: connexion refusée

À chaque fois que je lance mon serveur Rails 4.0, j'obtiens cette sortie. 

Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500

PG::ConnectionBad - 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?
could not connect to server: Connection refused
Is the server running on Host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
:
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
 activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'
 activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'
 activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'
 activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'
 activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 railties (4.0.0) lib/Rails/rack/logger.rb:38:in `call_app'
 railties (4.0.0) lib/Rails/rack/logger.rb:21:in `block in call'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
 railties (4.0.0) lib/Rails/rack/logger.rb:21:in `call'
 quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
 actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
 rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
 rack (1.5.2) lib/rack/runtime.rb:17:in `call'
 activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
 rack (1.5.2) lib/rack/lock.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
 railties (4.0.0) lib/Rails/engine.rb:511:in `call'
 railties (4.0.0) lib/Rails/application.rb:97:in `call'
 rack (1.5.2) lib/rack/content_length.rb:14:in `call'
 thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
 thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
 thin (1.5.1) lib/thin/connection.rb:54:in `process'
 thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
 eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
 thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
 thin (1.5.1) lib/thin/server.rb:159:in `start'
 rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
 rack (1.5.2) lib/rack/server.rb:264:in `start'
 railties (4.0.0) lib/Rails/commands/server.rb:84:in `start'
 railties (4.0.0) lib/Rails/commands.rb:78:in `block in <top (required)>'
 railties (4.0.0) lib/Rails/commands.rb:73:in `<top (required)>'
 bin/Rails:4:in `<main>'

J'utilise Mavericks OS X 10.9 donc je ne sais pas si c'est le problème. J'ai essayé tout ce que je pouvais mais rien ne semble fonctionner. J'ai déjà désinstallé et installé postgres et le pg gem plusieurs fois. 

Ceci est mon fichier database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: 
  password: 
  template: template0
  Host: localhost
  port: 5432

test: &test
  adapter: postgresql
  encoding: unicode
  database: metals-directory_test
  pool: 5
  username: 
  password: 
  template: template0
  Host: localhost
  port: 5432

staging:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  Host: localhost

production:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  Host: localhost

cucumber:
  <<: *test

Quelqu'un peut-il m'aider?

228
fadelakin

Cela pourrait être aussi simple qu’un fichier obsolète fichier PID . Cela pourrait échouer en silence car votre ordinateur n'a pas terminé complètement le processus d'arrêt, ce qui signifie que postgres n'a pas supprimé le fichierPID(id de processus). 

Postgres utilise le fichier PID pour s’assurer qu’une seule instance du serveur est en cours d’exécution à la fois. Ainsi, quand il recommence, il échoue car il existe déjà un fichierPIDqui indique à postgres qu'une autre instance du serveur a été démarrée (même s'il ne s'exécute pas, il n'a ne pas arriver à arrêter et supprimer le PID).

  1. Pour résoudre ce problème, supprimez/renommez le fichier PID. Trouvez le répertoire de données postgres. Sur un MAC utilisant homebrew, il s'agit de /usr/local/var/postgres/, d'autres systèmes, il pourrait s'agir de /usr/var/postgres/.
  2. Pour vous assurer que c'est bien le problème, consultez le fichier journal (server.log). Sur les dernières lignes, vous verrez: 

FATAL: le fichier de verrouillage "postmaster.pid" existe déjà
ASTUCE: Un autre postmaster (PID 347) est-il en cours d'exécution dans le répertoire de données "/ usr/local/var/postgres"?

  1. Si oui, rm postmaster.pid
  2. Redémarrez votre serveur. Sur un Mac utilisant launchctl (avec homebrew), les commandes suivantes vont redémarrer le serveur.

    launchctl unload homebrew.mxcl.postgresql.plist  
    launchctl load -w homebrew.mxcl.postgresql.plist
    

    OU sur les nouvelles versions de Brew  

    brew services restart postgresql
    
551
Chris Slade

Après de nombreuses recherches et analyses, j'ai trouvé une solution si vous utilisez Ubuntu, écrivez cette commande dans votre terminal et appuyez sur Entrée.

Sudo service postgresql restart

Cela redémarrera votre PostgreSQL, en espérant que cela vous aidera.

39
Jai Kumar Rajput

J'ai réussi à résoudre le problème en suivant la réponse de Chris Slade, mais pour redémarrer le serveur, j'ai dû utiliser les commandes suivantes:

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

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

que j'ai trouvé ici (réponse de pjammer en bas)

32
Andrea Gherardi

Avez-vous postgresql installé dans votre système? Sinon, regardez Installez postgresql . Une fois que vous avez intégré postgresql dans votre système, vous pouvez taper quelque chose comme ça dans votre terminal système:

which psql
#=> /usr/bin/psql

Après cela, vous devez créer un utilisateur et une base de données dans postgresql comme ceci:

Sudo su - postgres
psql

Ensuite, vous pouvez voir ce qui suit dans votre terminal

postgres=#

Tapez là:

CREATE USER yourname WITH PASSWORD 'passwordhere';
CREATE DATABASE metals-directory_production  WITH OWNER yourname;
GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;

Ensuite, vous devez corriger votre database.yml. Vous avez probablement besoin de quelque chose comme ça:

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: yourname
  password: passwordhere   ### password you have specified within psql
  Host: localhost
  port: 5432               ### you can configure it in file postgresql.conf

Aussi, si vous avez des problèmes avec postgresql, il est judicieux de vérifier pg_hba.conf

22

Pour résoudre ce type de problèmes avec Postgres et pour travailler avec Postgres sous Mac OSX, il s’agit probablement du BEST et du PLUS FACILE solution que j'ai trouvée jusqu'à présent:

http://postgresapp.com/

Il suffit de télécharger, installer et être heureux :)

22
K M Rakibul Islam

Ce problème survient lorsque postgres ne s’est pas arrêté correctement. Voici comment j'ai résolu ce problème en trois étapes simples.

Etape 1: Allez dans votre répertoire postgres

Utilisateurs Mac trouveront ceci dans /usr/local/var/postgres, d’autres pourront consulter /usr/var/postgres/.

Étape 2: Supprimez le fichier .pid en exécutant cette commande.

rm postmaster.pid

Étape 3: / Redémarrez votre serveur

Utilisateurs Mac

brew services restart postgresql

Utilisateurs Linux

Sudo service postgresql restart

Enfin, redémarrez votre application et vous êtes prêt à partir.

21
techdreams
  1. Désinstaller pg:

    gem uninstall pg
  2. Désinstallez postgres:

    brew uninstall postgres
  3. Enfoncez le dossier postgres qui pourrait s’attarder avec un tas de bourre rassis:

    rm -rf /usr/local/var/postgres
  4. Redémarrer (peut-être inutile)

  5. Réinstallez pg:

    brew install postgres
  6. Mon commentaire dans la réponse de Chris Slade commence à la dure, maintenant j'utilise les services de brassage, ce qui a simplifié ma vie de nombreuses façons:

    brew install services
  7. Et commencez pg avec ça:

    brew services start postgresql
  8. Réinstallez la gemme:

    gem install pg

Et bobsyouruncle.

16
IAmNaN

vérifiez le fichier postgresql.conf (le ubuntu est dans /etc/postgresql/X.X/main/postgresql.conf ) et recherchez la ligne qui dit:

listen_addresses="localhost"

essayez de le changer pour:

listen_addresses="*"

ce serait accepter toutes les adresses IP, ensuite vérifiez la ligne qui dit:

port=5432

et vérifiez si est le même port de votre database.yml, par défaut sur mon postgresql-9.2, utilisez 5433 à la place 5432 , n'oubliez pas de restart le serveur postgres, 

Bonne chance!

12
Alexis

Comme décrit par @Magne, l'erreur PG::ConnectionBad - could not connect to server: Connection refused peut être présentée à la suite d'une mise à niveau version majeure/mineure _ (par exemple 9.5 -> 9.6 ou 9 -> 10) de PostgreSQL. 

J'ai eu cette erreur après avoir exécuté brew upgrade postgresql après la publication de PostgreSQL version 9.6. Le problème est que les mises à niveau majeure/mineures nécessitent des étapes supplémentaires pour migrer l'ancienne date vers la nouvelle version.

Comment vérifier s'il s'agit de votre problème

Vous pouvez vérifier si tel est le problème en consultant la dernière version de brassage PostgreSQL version installée avec homebrew ...

$ brew info postgresql

/usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M)
Poured from bottle on 2016-10-14 at 13:33:28
/usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) *
Poured from bottle on 2017-02-06 at 12:41:00

... puis en le comparant à la PG_VERSION actuelle

$ cat /usr/local/var/postgres/PG_VERSION
9.5

Si PG_VERSION est inférieur à la dernière formule d'infusion et que la différence est un changement de version majeur/mineur, alors c'est probablement votre problème.

Comment résoudre ce problème (c.-à-d. Comment mettre à niveau les données)

Les instructions ci-dessous concernent une mise à niveau de la version 9.5 à la version 9.6. Modifiez les numéros de version en fonction de votre propre mise à niveau

Étape 1. Assurez-vous que PostgreSQL est désactivé:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, with Homebrew...
$ brew services stop postgresql

Étape 2. Créez une nouvelle base de données vierge:

$ initdb /usr/local/var/postgres9.6 -E utf8

Étape 3. Vérifiez les anciennes et les nouvelles versions binaires:

$ ls /usr/local/Cellar/postgresql/
9.5.3   9.5.4   9.6.1

Notez que dans cet exemple, je passe de la version 9.5.4 binaire à la version 9.6.1 binaire

Étape 4. Migrez les données actuelles vers la nouvelle base de données à l'aide de l'utilitaire pg_upgrade

$ pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres9.6 \
  -b /usr/local/Cellar/postgresql/9.5.4/bin/ \
  -B /usr/local/Cellar/postgresql/9.6.1/bin/ \
  -v
  • -d flag spécifie le répertoire de données actuel
  • -D flag spécifie le nouveau répertoire de données à créer
  • -b spécifie l'ancien binaire
  • -B spécifie le nouveau binaire que nous mettons à niveau

Étape 5. Déplacez l'ancien répertoire de données 

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

Étape 6. Déplacez le répertoire de données nouvellement créé vers l'emplacement attendu par PostgreSQL

$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres

Step 7. Relancez PostgreSQL

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, if you're running a current version of Homebrew
$ brew services start postgresql

Étape 8. Si vous utilisez le gem gem pour Rails, vous devez le recompiler en désinstallant et en réinstallant le gem (ignorez cette étape si vous n’utilisez pas le gem pg).

$ gem uninstall pg
$ gem install pg

Étape 9. (facultatif) Après vous être assuré que tout fonctionne correctement, vous pouvez exécuter de récupérer de l'espace disque à l'aide de la commande suivante:

brew cleanup postgresql

... et si vous vous sentez vraiment courageux, vous pouvez supprimer l'ancien répertoire de données PostgreSQL avec la commande suivante

rm -rf /usr/local/var/postgres9.5/

(Cette réponse est basée sur un excellent article de blog https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/ avec quelques ajouts)

11
Neil Atkinson

Comme suggéré ci-dessus, je viens d'ouvrir l'application Postgres sur mon Mac, de cliquer sur Ouvrir Psql, de fermer la fenêtre psql, de redémarrer mon serveur Rails sur mon terminal et que cela fonctionnait à nouveau, plus d'erreur. 

Faites confiance à l'éléphant: http://postgresapp.com/

7
houstongolden

C'est ce qui m'a vraiment aidé.

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

Référence: http://alumni.lewagon.org/questions/60

6
Rosana Ruiz

Si vous rencontrez ce problème après avoir effectué un brew upgrade qui a mis à niveau postgres vers une nouvelle version majeure (f.ex 9.3.0 vers 9.4.0 ou supérieur), procédez comme suit:

Le correctif de @ dmitrygusev de https://github.com/Homebrew/homebrew/issues/35240

Suivre le guide officiel de migration [Postgresql] a aidé:

brew switch postgres 9.3.5    # presuming you already installed 9.4.1
pg_dumpall > outputfile
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres.old
brew switch postgres 9.4.1
initdb -D /usr/local/var/postgres
psql -d postgres -f outputfile

C'est tout. Vérifiez si l'importation s'est bien passée, puis supprimez les sauvegardes:

rm outputfile
rm -Rf /usr/local/var/postgres.old

Le problème ici est que, sur une mise à niveau majeure de postgres, il est nécessaire de recréer/migrer votre base de données. Et éventuellement chown répertoires ou appelez manuellement initdb.

Voir aussi: Comment mettre à niveau PostgreSQL de la version 9.5 à la version 9.6 sans perdre de données?


Voici d'autres astuces qui pourraient vous être utiles si vous n'utilisez pas Homebrew:

Comment arrêter manuellement le serveur PG:

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

Comment démarrer le serveur PG manuellement:

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

5
Magne

mettez Host: localhost dans le fichier database.yml et exécutez la commande suivante:

rake db:create db:migrate  
4
Abel

Localisez votre fichier postgres, il pourrait être dans /usr/local/var/postgres/ ou /usr/var/postgres/, puis supprimez le fichier postmaster.pid présent dans ce dossier. 

3
Awais Shafqat

J'ai eu le même problème après la mise à jour de mon mac sur Osx Movaje.

j'ai trouvé cette solution:

Essayez d’abord la ligne de commande ci-dessous dans votre terminal: 

brew services restart postgresql

Si rien ne change:

ps aux | grep postgres

Si toujours rien ne change:

ls -ls | grep post

Dernière commande pour résoudre ce problème, a supprimé le fichier de verrouillage postgres en exécutant à partir de la racine:

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

et alors :

brew services restart postgresql

De berziiii: https://github.com/ga-wdi-boston/capstone-project/issues/325

J'espère que ça va aider :)

Cordialement !!

3
Basile

Je viens d'exécuter cette commande Sudo service postgresql restart.__ et tout a fonctionné à nouveau.

2
kalibbala

Je viens d'avoir ce problème ce soir, en travaillant sur une application Rails sur laquelle je travaille depuis un moment. Mon problème est simplement lié au fait que mon serveur postgresql ne fonctionnait pas.

Je suis allé en haut de l'écran (je suis sur un Mac) et j'ai cliqué sur la petite icône d'éléphant, puis sur "Démarrer".

Le serveur n'était pas allumé.

J'espère que cela fournit une solution simple pour quelqu'un.

1
solidstatejake

Vous avez probablement redémarré votre ordinateur et oublié de lancer l'application Postgres. 

1
The Whiz of Oz

Je sais que c'est tard, mais que cela pourrait aider quelqu'un… J'ai le même problème. Il s’avère que j’avais deux versions de postgres 9.1 et 9.5. J'ai désinstallé les versions 9.1 et 9.5 et installé à nouveau la version 9.5, et cela a fonctionné pour moi.

1
Darshan Chauhan

Les utilisateurs de Mac avec l'application Postgres peuvent vouloir ouvrir l'application (recherchez Spotgres dans Spotlight ou recherchez l'icône de l'éléphant dans la barre de menus). Vous pouvez y voir un X rouge avec le message: "Fichier postmaster.pid obsolète". Malheureusement, une recherche Spotlight ne montrera pas l'emplacement de ce fichier. Cliquez sur "Paramètres du serveur ...", et dans la boîte de dialogue qui s'ouvre, cliquez sur le bouton "Afficher" pour ouvrir le répertoire de données. Naviguez dans un dossier (pour moi, c'était "var-10") et supprimez le fichier postmaster.pid.

Retournez à l'application Postgres et cliquez sur le bouton Démarrer. Ce X rouge devrait se transformer en une coche verte avec le message "Running". Vous devriez maintenant pouvoir exécuter des commandes Rails telles que Rails server dans le terminal.

 Postgres App Server Settings - Show Data Directory

1
chemturion

Mon problème était dans mon application.yml fichier. Ma base de données url sur heroku n'utilisait pas le port 5342. Vérifiez votre heroku config var DATABASE_URL. Assurez-vous que les correspondances exactes étaient dans votre application.yml pour la base de données applicable.

1
NickDK

J'ai eu le même problème. I Vérifiez la dernière ligne des fichiers journaux PostgreSQL dans /var/log/postgresql. Il y avait un paramètre de configuration non reconnu dans le fichier/etc/postgresql/9.5/main/postgresql.conf . Commenter la ligne d'erreur dans postgresql.conf a résolu mon problème.

1
Hajar Homayouni

C'est certainement la réponse de Chris Slade qui m'a aidé.

J'ai écrit un petit script pour tuer les processus restants si utile:

kill_postgres() {
  if [[ $* -eq "" ]]; then
    echo "Usage: 'kill_postgres <db_name>' to kill remaining instances (Eg. 'kill_postgres my_app_development')"
  else
    gksudo echo "Granted Sudo"
    pids="$(ps xa | grep postgres | grep $* | awk '{print $1}' | xargs)"
    if [[ $pids -eq "" ]]; then
      echo "Nothing to kill"
    else
      for pid in "${pids[@]}"
      do
        echo "Killing ${pid}"
        Sudo kill $pid
        echo "Killed ${pid}"
      done
      kill_postgres $*
    fi
  fi
}
1

J'ai eu le même problème, cette explication l'a résolu pour moi: http://blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/

l’étape clef consistait à regarder la queue de mon /usr/local/var/postgres/server.log, qui me permettait de voir quel était le problème, c’était que je n’avais pas complètement terminé le processus de la mise à niveau de PostgreSQL

1
Ben Wheeler

Le gestionnaire de paquets Homebrew inclut des plists launchctl pour un démarrage automatique. Pour plus d'informations, exécutez brew info postgres.

Démarrer manuellement:

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

Arrêter manuellement:

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

Démarrer automatiquement:

"Pour que launchd lance postgresql maintenant et redémarre à la connexion:"

brew services start postgresql

0
user3402754

Vous n'êtes pas obligé de supprimer le fichier postmaster.pid, car cela pourrait entraîner une corruption des données.

Option? Simplement kill le processus (ne pas utiliser kill -9, juste un kill ordinaire fera l'affaire).

Ensuite, redémarrez le serveur postgres et le tour est joué!

Voici les étapes pour y parvenir:

  1. Localisez et ouvrez le fichier postmaster.pid (le mien est sur Mac Sierra)

    vi ~/Library/Application\ Support/Postgres/var-10/postmaster.pid

  2. Copier le PID - c'est le numéro sur la première ligne du fichier postmaster.pid

  3. Tuez le processus avec kill PID, par exemple, si mon PID est 381, je ferai kill 381
  4. Redémarrez Postres - si vous utilisez Brew, faites brew services start postgresql. Ou si vous utilisez Postgresapp, cliquez simplement sur le bouton start.
0
Ruto Collins

J'ai arrêté le serveur Rails, lancé rake db:migrate et démarré mon Rails s.

0
thedanotto

Je devais réinstaller mon postgres, les grandes instructions décrites ici: https://medium.com/@zowoodward/effectively-uninstall-and-reinstall-psql-with-homebrew-on-osx-fabbc45c5d9d

Ensuite, je devais créer un utilisateur postgres: /usr/local/opt/postgres/bin/createuser -s postgres

Cette approche effacera toutes vos données locales. Veuillez donc sauvegarder vos données si nécessaire.

0
Geoff Paul Bremner

Je viens d'avoir ce problème et aucune des solutions suggérées n'a fonctionné pour moi. Après beaucoup de recherches sur Google, j'ai trouvé une solution. C'est ce qui a fonctionné pour moi.

Tout d'abord, je devais exécuter cette commande pour démarrer le serveur et je suppose que définir l'emplacement du fichier de configuration.

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql

Puis j'ai lancé cette commande pour accéder à postgres

psql postgres

Et à l'invite postgres, j'ai tapé "\ du" pour lister les rôles

postgres=# \du

Le rôle postgres était manquant alors j'ai dû le créer avec cette commande

CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;

Cela a résolu mon problème et j'espère que cela aidera quelqu'un d'autre.

0
luis.madrigal