J'ai un problème avec mon installation de postgres dans mon environnement de développement et j'ai besoin d'aide pour le diagnostiquer. Je n'ai pas encore eu de chance pour trouver une solution.
Je peux démarrer et arrêter le serveur
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
Si j'essaye d'arrêter quand même
$ pg_ctl -D /usr/local/var/postgres stop -s -m fast
pg_ctl: PID file "/usr/local/var/postgres/postmaster.pid" does not exist
Is server running?
Ok ça manque
$ ls -l /usr/local/var/postgres/ | grep postmaster
$
Mais il tourne définitivement
$ ps aux | grep postgres
pschmitz 303 0.9 0.0 2445860 1428 ?? Ss 3:12PM 0:02.46 postgres: autovacuum launcher process
pschmitz 304 0.9 0.0 2441760 428 ?? Ss 3:12PM 0:02.57 postgres: stats collector process
pschmitz 302 0.0 0.0 2445728 508 ?? Ss 3:12PM 0:00.56 postgres: wal writer process
pschmitz 301 0.0 0.0 2445728 560 ?? Ss 3:12PM 0:00.78 postgres: writer process
pschmitz 227 0.0 0.1 2445728 2432 ?? S 3:11PM 0:00.42 /usr/local/Cellar/postgresql/9.0.3/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
Et si j'essaye d'y accéder ou de l'utiliser, j'obtiens ceci.
$psql
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Mais global/pg_filenode.map existe certainement dans
$ls -l /usr/local/var/postgres/
...
-rw------- 1 pschmitz staff 8192 Sep 16 15:48 pg_control
-rw------- 1 pschmitz staff 512 Sep 16 15:48 pg_filenode.map
-rw------- 1 pschmitz staff 12092 Sep 16 15:48 pg_internal.init
J'ai tenté de désinstaller et de réinstaller sans effet. Des idées sur la façon dont je peux résoudre ce problème? Cela m'a pratiquement empêché de faire quoi que ce soit aujourd'hui.
EDIT Résolu
Je ne sais pas quelle était la source de mon problème d'origine avec 9.0.3 car j'obtenais ce problème
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Cependant, comme indiqué ci-dessus, il s'avère que le processus en cours était pour ma précédente installation postgres de 9.0.3
Je crois que j'avais une ancienne version org.postgresql.postgres.plist dans ~/Library/LaunchAgents /
J'ai dû:
initdb /usr/local/var/postgres
et maintenant je l'ai et je travaille.
Je ne sais pas quelle était la source de mon problème d'origine avec 9.0.3 car j'obtenais ce problème:
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Cependant, comme indiqué ci-dessus, il s'avère que le processus en cours était pour ma précédente installation postgres de 9.0.3
Je crois que j'avais une ancienne version org.postgresql.postgres.plist dans ~/Library/LaunchAgents /
J'ai dû:
initdb /usr/local/var/postgres
et maintenant je l'ai et je travaille.
Cela peut être un problème d'autorisation, veuillez vérifier le propriétaire et le groupe de fichiers de configuration dans /var/lib/pgsql/9.3/data/
chown -R postgres:postgres /var/lib/pgsql/9.3/data/
résolu le problème pour moi
Je viens de rencontrer ce problème. Résolu en définissant le propriétaire du répertoire de données postgres sur l'utilisateur postgres non privilégié.
ps aux | grep postgres
a révélé que j'avais une autre instance de postgres en cours d'exécution sur un répertoire de données temporaires à partir d'un test précédent. Tuer ce processus a résolu le problème.
J'avais une vieille valeur de PGDATA confondant les choses.
Cela ( https://Gist.github.com/olivierlacan/e1bf5c34bc9f82e06bc ) a résolu mon problème! Je devais d'abord:
initdb /usr/local/var/postgres/
Ensuite, j'ai pu démarrer/arrêter Postgres avec ces 2 commandes:
Début:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Arrêtez:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Ma solution étape par étape dans Fedora:
/bin/systemctl stop postgresql.service
(Arrêtez le service)rm -rf /var/lib/pgsql/data
(Supprimer le direcotry "data")postgresql-setup initdb
(Recréer le répertoire "data")/bin/systemctl start postgresql.service
(Démarrer le service)Il est également utile de vérifier les autorisations du répertoire "data":
chown -R postgres:postgres <path_to_data_dir>
(Félicitations à @LuizFernandodaSilva & @ user4640867 )
Vous avez rencontré ce problème en utilisant mdillon/postgis:9.6
Image Docker. Simple Sudo docker restart <container id>
résolu le problème.
Ma solution à ce problème:
J'utilise postgresql-9.3
Mon fichier plist se trouve dans le répertoire suivant: /Library/LaunchDaemons/com.edb.launchd.postgresql-9.3.plist
L'étape 1 arrêtera les postgres
1. $ Sudo launchctl stop com.edb.launchd.postgresql-9.3
Démarrez postgres en utilisant la commande suivante (pouvez trouver cet emplacement en utilisant $ brew info postgres)
2. $ postgres -D/usr/local/var/postgres
J'ai eu la même erreur psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
.
Merci pour la note # 2 ci-dessus: "Tuez les processus pour 9.0.3"
J'ai précédemment configuré et compilé PostgreSQL. J'ai alors décidé de reconfigurer, gmake, gmake install avec différents chemins de fichiers. Le programme nouvellement compilé ne trouvait pas 'pg_filenode.map' dans le chemin de fichier attendu. Tuer le processus postgres en cours d'exécution, vider pgsql/data et recommencer initdb a permis la création d'une nouvelle base de données.
Je suis d'accord sur toutes les solutions ci-dessus. J'exécutais Postgres sur un serveur, et le problème était que j'utilisais un numéro de port utilisé par une autre version plus ancienne de Postgres.
Je n'avais besoin que de changer le port.