Linux上的PostgreSQL数据库默认位置

gru*_*czy 107 linux postgresql

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

leo*_*loy 125

" postgresql将保留所有数据库的目录 "(和配置)称为"数据目录",对应于PostgreSQL调用的(有点令人困惑的)" 数据库集群 ",它与分布式计算无关,它只是意味着一个组由PostgreSQL服务器管理的数据库和相关对象.

数据目录的位置取决于分发.如果从源安装,则默认为/usr/local/pgsql/data:

在文件系统术语中,数据库集群将是一个目录,在该目录下将存储所有数据.我们将其称为数据目录或数据区域.完全取决于您选择存储数据的位置.虽然/ usr/local/pgsql/data或/ var/lib/pgsql/data等位置很受欢迎,但没有默认值.(参考)

此外,正在运行的PostgreSQL服务器的实例与一个集群相关联; 其数据目录的位置可以在命令行选项中传递给服务器守护程序(" postmaster "或" postgres "),也可以传递给环境变量(通常在运行用户的范围内).您通常可以看到正在运行的服务器,如下所示:-DPGDATApostgres

[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
Run Code Online (Sandbox Code Playgroud)

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


sil*_*ent 60

/var/lib/postgresql/[version]/data/
Run Code Online (Sandbox Code Playgroud)

至少在Gentoo Linux和Ubuntu 14.04默认情况下.

你可以找到postgresql.conf并看看param data_directory.如果注释,则数据库目录与此配置文件目录相同.

  • 这取决于分布,它们都会略有不同.如果您可以连接到系统,使用"SHOW data_directory"可能是最简单的方法. (19认同)
  • 对于Centos 7,postgres 9.3路径`/ var/lib/pgsql/9.3` (8认同)

Léo*_* 준영 15

使用包管理器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
Run Code Online (Sandbox Code Playgroud)

显然/var/lib/postgresql/9.4/main.


小智 10

在Centos 6.5/PostgreSQL 9.3上:

将值更改为"PGDATA=/var/lib/pgsql/data"初始脚本文件中所需的任何位置/etc/init.d/postgresql.

请记住, chmod 700chown postgres:postgres在新的位置,你是老板.


k_o*_*_o_ 5

该命令pg_lsclusters(至少在 Linux / Ubuntu 下)可用于列出现有集群以及数据目录:

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 down   postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
10  main    5432 down   postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
Run Code Online (Sandbox Code Playgroud)