Emplacement par défaut de la base de données PostgreSQL sur Linux

Quel est le répertoire par défaut où PostgreSQL conservera toutes les bases de données sous Linux?

85
demandé sur the Tin Man 2010-06-09 13:23:22

5 réponses

le" répertoire où postgresql conservera toutes les bases de données "(et la configuration) est appelé" répertoire de données "et correspond à ce que PostgreSQL appelle (un peu confusément) un" cluster de bases de données ", qui n'est pas lié à l'informatique distribuée, il signifie simplement un groupe de bases de données et d'objets connexes gérés par un serveur PostgreSQL.

L'emplacement du répertoire de données dépend de la distribution. Si vous installez de source, la valeur par défaut est /usr/local/pgsql/data :

en termes de système de fichiers, une base de données cluster sera un répertoire unique sous lequel toutes les données seront stockées. Nous l'appelons le répertoire de données ou zone de données. Il est complètement à vous lorsque vous choisissez de stocker vos données. Il n'y a pas de défaut, bien que des endroits tels que les /usr / local/pgsql / data ou / var/lib/pgsql / les données sont populaires. ( ref )

en outre, une instance d'un serveur PostgreSQL en cours d'exécution est associée à un cluster; l'emplacement de son répertoire de données peut être passé au démon serveur (" postmaster " ou " postgres ") dans l'option de ligne de commande -D , ou par la variable d'environnement PGDATA (habituellement dans le champ d'application de l'utilisateur courant, typiquement postgres ). Vous pouvez habituellement voir le serveur courant avec quelque chose comme ceci:

[root@server1 ~]# ps auxw |  grep postgres | grep -- -D
postgres  1535  0.0  0.1  39768  1584 ?        S    May17   0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

notez Qu'il est possible, bien que peu fréquent, d'exécuter deux instances du même serveur PostgreSQL (mêmes binaires, processus différents) qui servent des "clusters" différents (répertoires de données). Bien sûr, chaque instance écouterait sur son propre port TCP/IP.

108
répondu leonbloy 2016-06-23 16:21:03
/var/lib/postgresql/[version]/data/

au moins dans Gentoo Linux et Ubuntu 14.04 par défaut.

vous pouvez trouver postgresql.conf et regarder param data_directory . Si elle est commentée ensuite répertoire de base de données est le même que ce fichier de configuration du répertoire.

48
répondu silent 2014-04-23 11:26:43

par défaut dans Debian 8.1 et PostgreSQL 9.4 après l'installation avec le gestionnaire de paquets apt-get

ps auxw |  grep postgres | grep -- -D
postgres 17340  0.0  0.5 226700 21756 ?        S    09:50   0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf

donc apparemment /var/lib/postgresql/9.4/main .

14
répondu Léo Léopold Hertz 준영 2015-07-21 05:51:24

Se connecter à une base de données et exécuter la commande:

SHOW data_directory;

plus d'informations:

https://www.postgresql.org/docs/9.4/static/sql-show.html https://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html

9
répondu Roby Sottini 2017-11-25 23:02:20

On Centos 6.5/PostgreSQL 9.3:

Change la valeur de "PGDATA=/var/lib/pgsql/data" à n'importe quel endroit que vous voulez dans le fichier de script initial /etc/init.d/postgresql .

souvenez-vous de chmod 700 et chown postgres:postgres au nouvel emplacement et vous êtes le patron.

8
répondu Dum 2016-06-23 16:22:58