web-dev-qa-db-fra.com

Postgres n'a pas pu se connecter au serveur

Une fois la mise à jour et la mise à niveau effectuées, mon postgres a un problème. J'ai essayé de désinstaller Postgres et de l'installer à nouveau, mais cela n'a pas fonctionné aussi bien.

C’est le message d’erreur. (J’ai également reçu ce message d’erreur lorsque j’essaie de faire rake db: migrate)

$ 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 de 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 lance rake db:migrate dans mon application Rails, cela indique:

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 un peu délicate, mais cela fonctionne. J'espère que tout le monde a une meilleure solution

Mise à jour

Cela fonctionne pour moi aussi.

rm /usr/local/var/postgres/postmaster.pid
370
Gary Lai

Avait un problème similaire; un fichier pid empêchait postgres de démarrer. Réparer:

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

et puis tout va bien.

733
jonathanpberger

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 à 9.4.

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

OS X/Homebrew:

Essayez de lancer postgres -D /usr/local/var/postgres - cela vous donnera un résultat beaucoup plus détaillé si postgres ne démarre pas.

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

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

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

228
FreePender

J'ai trouvé une solution qui a fonctionné pour moi ici:

https://dba.stackexchange.com/questions/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
66
Mosab Sasi

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

postgres -D /usr/local/var/postgres

si vous voyez ce genre 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.

Ensuite, essayez ce qui suit:

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

Puis démarrez le serveur:

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

Source

32
SsouLlesS

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

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

Puis supprimez le fichier pid

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

Rechargez ensuite le démon launchctl

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

Pour tous ceux qui liront ceci et utiliser Postgres.app, vous aurez peut-être besoin de Host: localhost dans votre database.yml. http://postgresapp.com/documentation#toc_

28
David Winiecki
brew services start postgres 

travaillé pour moi!

18
rld

Mettre à jour la base de données fonctionne pour moi

brew postgresql-upgrade-database

18
Tomer G

Vérifiez que le fichier de 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 si unix_socket_directory est modifié.

$ 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
16
jrwren

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

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

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

J'ai enlevé le fichier de socket

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

Puis j'ai réinitialisé les services postgres

postgres -D /usr/local/var/postgres

Cela a fonctionné pour moi.

8
Abdullah Gürsu

C’est ce que vous êtes censé faire:

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

et ensuite 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

https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists

n'écoutez pas la réponse acceptée, c'est mauvais et va corrompre vos données !!!

7
user1596067

Cela m'est arrivé lorsque j'ai mis à niveau de 9.3.4 à 9.5 car les bases de données sont incompatibles sans mise à niveau.

J'ai utilisé pg_upgrade comme suit:

Arrêtez postgres

$ brew services stop postgresql

Mettre à 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

Archiver 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 postgres:

 $ brew services start postgresql

Gems mis à jour (pour Rails/enregistrement actif):

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

La modification des paramètres de configuration postresql ou database.yml, la modification de $ PATH ou la création de liens symboliques étaient toutes inutiles pour moi. Tout ce que je devais faire était gem uninstall pg puis bundle (ou gem install pg).

Le problème était que la gem pg avait été installée avant les postgres homebrew. Il fallait donc récupérer 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.

6
John

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

brew reinstall postgresql

Cela gardera votre permission d'utilisateur, etc., intacte et tout sera réinitialisé. Fonctionne tout le temps!

6
Abhishesh Sharma

Option psql

-h nom_hôte --Hôte = nom_hôte

: Spécifie le nom d'hôte de la machine sur laquelle le serveur est en cours d'exécution. 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écuter psql avec l'option -Host

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

Pas besoin de faire un lien souple

4
Juno Choo

Nous avons également rencontré ce problème sous MacOS Sierra et lorsque nous avons exécuté pg_ctl comme décrit ci-dessus, nous avons 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
Austin

Cela a fonctionné pour moi (comme un mélange de réponses précédentes):

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

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

Source: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash

4
Ramon Diogo

Si postgres a été installé avec homebrew, vous pouvez résoudre ce problème en lançant:

brew link postgres
4
Cl Local

C’est parce qu’un serveur précédent est toujours en fonctionnement, essayez de tout fermer et de réexécuter votre application.

3
Kamara Jōb

FWIW m’est arrivé aujourd’hui, mais c’est que j’exécutais les mises à jour Ubuntu à l’époque, qui étaient probablement en train de mettre à 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
Ruy Diaz

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 postgres et saisis \du pour attribuer un nom de rôle et corriger le nom d'utilisateur de Postgres.

Ainsi, lorsque vous rencontrez 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 appropriés ...

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

3
Brilliant-DucN

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 [Ceci initialise postgres pour utiliser le répertoire donné comme répertoire de base de données. Normalement, il n'est pas conseillé d'utiliser l'annuaire d'utilisateurs pour le stockage de la base de données. Editez le fichier sudoers pour ajouter initdb et des commandes similaires, puis exécutez initdb sur/usr/local/var/postgres]

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

3
Souvik Das

Il semble que votre psql ne s'exécute pas. Vous devriez l'exécuter avant de vous connecter. Vous pouvez le faire 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 cette information ici http://www.postgresql.org/download/macosx/ . J'espère que cela vous aidera.

3
lisyk

Êtes-vous récemment changé le pg_hba.conf? si vous venez de rechercher une faute de frappe dans:

"local" est réservé aux connexions socket de domaine Unix

mot de passe local tous tous

Connexions locales IPv4:

Tout héberger 127.0.0.1/32 mot de passe

Connexions locales IPv6:

Tout héberger :: mot de passe 1/128

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
Sergio Zapata

Pour ceux qui utilisent cette commande et ne fonctionnent pas ou le fichier n'existe pas et utilise Ruby sur Rails

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

Ou toute autre commande et continuez à échouer.

J'ai résolu ce problème en désinstallant 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. À 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
Esteban Echeverry

Pour moi, c'est une mise à niveau d'Apache qui a posé le problème. Je pouvais toujours exécuter psql dans la console ou appeler db directement à partir de kdevelop. En outre, cela a fonctionné pour ajouter "Host = localhost" à la chaîne de connexion.

MAIS le vrai problème était qu’Apache avait changé pour tmp privé.

Solution: Mettez à jour /usr/lib/systemd/system/Apache2.service et remplacez PrivateTmp = true par PrivateTmp = false.

Je travaille sur OpenSuse OS, mais je suppose que quelque chose de similaire pourrait se produire sur Mac.

2
kaah

Après une quantité considérable de va-et-vient, il en est vraiment résulté de la version de gemme pg que j'utilisais. Sur les francs-tireurs, pg version 0.15.1 ne se connecte pas au port 5432 mais la version 0.17.1 fonctionne parfaitement - très étrange.

2
Anthony

J'ai la même erreur. Il s'avère que postgres ne fonctionnait 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 postgres dans la ligne de commande du répertoire de votre projet.

2
Benjamin Dunphy

J'ai rencontré le même problème pour psql (PostgreSQL) 9.6.11.

ce qui a fonctionné pour moi -

supprimer postmaster.pid - rm /usr/local/var/[email protected]/postmaster.pid

redémarrer postgres - brew services restart [email protected]

2
Piyush Sawaria

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. lancer la restauration/supprimer/créer à partir d'avant
2
TomFuertes

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

Alors j'ai fait le ci-dessous:

services de brassage commencent postgresql

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

1
Ashwin

Une des causes sera de s’assurer que la taille du disque n’est pas complète exécuter la commande postmaster -D chemin du postgres

0
Ajay Takur

La cause

Lion est livré avec une version de postgres déjà installée et utilise ces fichiers binaires par défaut. En général, vous pouvez contourner ce problème en utilisant le chemin d'accès complet aux fichiers binaires homebrew postgres, mais il peut toujours y avoir des problèmes avec d'autres programmes.

La solution

curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

Via

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

0
SocoM

Si vous rencontrez des problèmes lors de la mise à niveau de Postgres (ou après la mise à niveau), veuillez suivre les étapes mentionnées ici pour transférer en toute sécurité des données entre versions, ce qui résoudra le problème:

Mise à niveau de PostgreSQL 9.6.5 à 10.0 avec Homebrew (macOS)

J'ai utilisé la pile Bitnami et installé en tant qu'utilisateur psql non root. En utilisant psql, j'ai reçu l'erreur mentionnée.

Il s'avère qu'il existe 2 versions de psql

  1. un psql de niveau racine préemballé dans la distribution linux. Cela pointe vers/usr/bin/psql
  2. un psql de niveau non racine installé par la pile Bitnami. Cela pointe vers/bitnami/postgresql/postgresql/bin/psql

Vous voudrez peut-être changer l'alias de psql pour qu'il pointe vers l'utilisateur non root.

alias psql='/bitnami/postgresql/postgresql/bin/psql'

Ce qui précède a fonctionné pour moi sur psql -U postgres

0
Thyag

J'ai trouvé qu'après l'installation du dernier correctif pour Postgres 9.6, tous mes exécutables (postgres, psql, pg_dump, pg_restore etc.) avaient été abandonnés et je devais les recréer. Heureusement, Homebrew peut le faire pour vous:

brew link --force postgresql # (or in my case, `[email protected]`)
0
PJSCopeland

Le répertoire de données contient un ancien fichier postmaster.pid/Le répertoire de données contient un fichier postmaster.pid illisible. PostgreSQL place un fichier nommé postmaster.pid dans le répertoire de données pour stocker l'ID de processus du processus serveur PostgreSQL. Si PostgreSQL se bloque, ce fichier peut contenir un ancien pid qui confond PostgreSQL. Vous pouvez résoudre ce problème en supprimant le fichier postmaster.pid. Cependant, vous devez vous assurer que PostgreSQL n'est vraiment pas en cours d'exécution. Ouvrez Activity Monitor et assurez-vous qu’il n’existe aucun processus nommé "postgres" ou "postmaster".

Si vous supprimez le fichier postmaster.pid alors que PostgreSQL est en cours d'exécution, de mauvaises choses se produiront.

Source: https://postgresapp.com/documentation/troubleshooting.html

0
Selv

Juste deux étapes pour exécuter la base de données après l'installation (avant cela, assurez-vous que vous êtes connecté en tant qu'utilisateur postgres)

Réponses installées/bin/postmaster -D Réponses installées/pgsql/data

À titre d'exemple:

[postgres@localhost bin]$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

Étape 2: exécutez psql à partir du chemin d'installation (pour vérifier l'emplacement d'installation de '#which postgres' pour connaître l'emplacement d'installation)

[postgres@localhost bin]$ psql 
0

Pour nous, nous avons dû définir localhost dans la commande psql comme suit:

psql -h localhost -U postgres

Vous ne savez pas pourquoi le -h ne contient pas par défaut localhost...

0
hooknc