PostgreSQL将所有数据库保存在Linux上的默认目录是什么?
" postgresql将保留所有数据库的目录 "(和配置)称为"数据目录",对应于PostgreSQL调用的(有点令人困惑的)" 数据库集群 ",它与分布式计算无关,它只是意味着一个组由PostgreSQL服务器管理的数据库和相关对象.
数据目录的位置取决于分发.如果从源安装,则默认为/usr/local/pgsql/data
:
在文件系统术语中,数据库集群将是一个目录,在该目录下将存储所有数据.我们将其称为数据目录或数据区域.完全取决于您选择存储数据的位置.虽然/ usr/local/pgsql/data或/ var/lib/pgsql/data等位置很受欢迎,但没有默认值.(参考)
此外,正在运行的PostgreSQL服务器的实例与一个集群相关联; 其数据目录的位置可以在命令行选项中传递给服务器守护程序(" postmaster "或" postgres "),也可以传递给环境变量(通常在运行用户的范围内).您通常可以看到正在运行的服务器,如下所示:-D
PGDATA
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/
至少在Gentoo Linux和Ubuntu 14.04默认情况下.
你可以找到postgresql.conf
并看看param data_directory
.如果注释,则数据库目录与此配置文件目录相同.
连接到数据库并执行命令:
SHOW data_directory;
更多信息:
https://www.postgresql.org/docs/current/sql-show.html https://www.postgresql.org/docs/current/runtime-config-file-locations.html
使用包管理器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上:
将值更改为"PGDATA=/var/lib/pgsql/data"
初始脚本文件中所需的任何位置/etc/init.d/postgresql
.
请记住, chmod 700
并chown postgres:postgres
在新的位置,你是老板.