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
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.
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é.
J'ai trouvé une solution qui a fonctionné pour moi ici:
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
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
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
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_
brew services start postgres
travaillé pour moi!
Mettre à jour la base de données fonctionne pour moi
brew postgresql-upgrade-database
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
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
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.
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 !!!
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
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.
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!
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
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
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
Si postgres a été installé avec homebrew, vous pouvez résoudre ce problème en lançant:
brew link postgres
C’est parce qu’un serveur précédent est toujours en fonctionnement, essayez de tout fermer et de réexécuter votre application.
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"?
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
Cela se produit lorsque le serveur postgres n'est pas en cours d'exécution. Étapes pour installer correctement Postgres via Homebrew sur MAC:
brew install postgres
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]
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.]
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.
Êtes-vous récemment changé le pg_hba.conf? si vous venez de rechercher une faute de frappe dans:
mot de passe local tous tous
Tout héberger 127.0.0.1/32 mot de passe
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.
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)
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.
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.
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.
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]
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:
Rails server
, Rails console
, guard
, etc ...brew info postgres
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
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
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/
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
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
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]`)
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
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
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
...