PostgreSQL数据库在Linux上的默认位置

PostgreSQL将在Linux上保留所有数据库的默认目录是什么?

postgresql将保留所有数据库的目录 ”(和configuration)被称为“数据目录”,并对应于PostgreSQL调用(有点混淆)的“ 数据库集群 ”,它与分布式计算无关,它只是一个组由PostgreSQL服务器pipe理的数据库和相关对象。

数据目录的位置取决于分布。 如果您从源代码安装,则默认为/usr/local/pgsql/data

在文件系统方面,数据库集群将成为一个单一的目录下的所有数据将被存储。 我们称之为数据目录或数据区域。 您select存储数据完全取决于您。 虽然诸如/ usr / local / pgsql / data或/ var / lib / pgsql / data之类的位置很受欢迎,但没有默认设置。 ( ref )

另外,运行的PostgreSQL服务器的一个实例与一个集群相关联; 其数据目录的位置可以通过-D命令行选项或PGDATA环境variables(通常在运行用户的范围内,通常是postgres )传递给服务器守护进程(“ postmaster ”或“ postgres ”)。 您通常可以看到正在运行的服务器,如下所示:

 [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 

请注意,虽然不是很频繁,但可以运行服务于不同“集群”(数据目录)的相同PostgreSQL服务器(相同二进制文件,不同进程)的两个实例。 当然,每个实例都会监听自己的TCP / IP端口。

 /var/lib/postgresql/[version]/data/ 

至less在Gentoo Linux和Ubuntu 14.04中是默认的。

你可以findpostgresql.conf并查看参数data_directory 。 如果它被注释,则数据库目录与该configuration文件目录相同。

在使用软件包pipe理器apt-get进行安装之后,在Debian 8.1和PostgreSQL 9.4中默认是默认的

 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 

所以显然是/var/lib/postgresql/9.4/main

在Centos 6.5 / PostgreSQL 9.3上:

在初始脚本文件/etc/init.d/postgresql中将"PGDATA=/var/lib/pgsql/data"的值更改为您想要的位置。

记住chmod 700chown postgres:postgres到新的位置,你是老板。