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 700
和chown postgres:postgres
到新的位置,你是老板。