J'ai oublié comment j'ai démarré PostgreSQL la dernière fois (c'était il y a des mois) et je ne me souviens pas de l'emplacement du répertoire de données. La postgres
commande semble nécessiter l'emplacement du répertoire de données.
Je suis sur MacOsX si cela aide.
/usr/local/postgres
n'existe pas sur mon Mac.
En utilisant les réponses fournies ci-dessous, j'ai trouvé que c'était ici:
/usr/local/var/postgres
postgresql
mac-os-x
type au hasard
la source
la source
data
est/usr/local/var/postgres
Réponses:
Si vous pouvez vous connecter à la base de données avec un accès superutilisateur, alors
est le plus court chemin.
Si le serveur ne fonctionne pas et que vous avez oublié l'emplacement du répertoire de données, vous devez vraiment vous deviner. Une convention spécifique au système d'exploitation ou l'historique du shell peuvent fournir des indications.
la source
Vous pouvez également l'interroger
la source
pg_config
montre beaucoup d'informations, y compris le répertoire de données:Cela pourrait être une chose spécifique à la bière, cependant; sans breuvage je ne sais pas ce que ça montre.
la source
pg_config --configure
n'est pas le même que celuibrew info postgresql
recommandé (qui est$(brew --prefix)/var/postgres
et n'est pas un lien symbolique vers celui répertorié). Il semble que la formule soit un peu laxiste pour utiliser correctement les drapeaux de configuration.postgresql-<ver>
paquet apt, mais requiert égalementpostgresql-server-dev-<ver>
$(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist
, regardez pour le chemin qui suit le-D
(c'est/usr/local/var/postgres
sur le mien).Sur Ubuntu \ Debian, essayez la
pg_lsclusters
commande.Sur ma machine:
la source
Si vous ne pouvez pas vous connecter (par exemple, vous avez oublié votre mot de passe) mais que le service est en cours d'exécution, car MacOS X est une variante, vous pouvez toujours vérifier
ps
s'il est transmis en tant qu'argument:Sur une machine Linux avec deux instances de postgres en cours d'exécution:
la source
Ouvrez postgresql.conf, allez à la ligne:
est votre réponse.
la source
postgresql.conf
find / -iname "postgresql.conf" 2>/dev/null
pour savoirpostgresql.conf
n'a pasdata_directory
défini. C'est seulement mentionné dans un commentaire:#data_directory = 'ConfigDir' # use data in another directory
Les versions modernes du client de bureau PostgreSQL pour OSX ont une boîte de dialogue pratique "Paramètres du serveur" qui vous permet non seulement de répertorier le répertoire de données, mais de l'ouvrir directement.
Très utile si vous rencontrez un crash machine aléatoire qui laisse un fichier de verrouillage.
la source
Sous OS X 10.8 et 10.9 (et non 10.10) avec l'application serveur installée, dans une fenêtre de terminal, tapez
Sur OS X 10.9 Mavericks, voici le résultat obtenu, qui comprend le répertoire de données.
Je viens d’essayer cela dans Yosemite (OS X 10.10) et postgres n’est plus répertorié en tant que service sous serveradmin (bien que postgres soit installé).
ne liste pas postgres
la source
Sur Windows Server 2012, la commande
pg_config
n'a pas révélé le répertoire de données pour une raison quelconque. Mais je l'ai trouvé en regardant le fichierC:\Program Files\PostgreSQL\9.4\pg_env.bat
, qui contenait cette ligne:C'était la réponse dont j'avais besoin.
la source
Pourquoi ne pas utiliser l’utilitaire standard pg_config tel que
pg_config --bindir
On pourrait également obtenir les paramètres de configuration utilisés pour compiler PostgreSQL et les analyser avecpg_config --configure
la source
--bindir
affiche l'emplacement des exécutables, pas le répertoire de données.--configure
est OK, même s’il faut un peu analyser la sortie.Comme indiqué, on pourrait également utiliser
ps
pour capturer l’emplacement des données tel que:ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'
.Cela fonctionnerait la plupart du temps. Il renverrait quelque chose comme
/usr/local/pgsql/data
ou à tout autre endroit spécifié dans les paramètres de PostgreSQL au lancement.la source
D'après la réponse de @Matthew Mark Miller, sous macOS 10.14 sous Postgres 11, il se trouve à l'adresse suivante:
la source
Généraliser à partir des 2 premières réponses:
Pour afficher le répertoire de données directement sur la ligne de commande:
Pour voir également tous les autres chemins définis vers les fichiers et les répertoires:
Exemple de sortie:
(Sous Windows, remplacez
LIKE '/%'
parLIKE '%/%'
car le chemin commence par une lettre de lecteur)la source