PostgreSQL数据库的文件存储在哪里?


当前回答

一个终端命令:pg_lsclusters(使用Ubuntu)

你需要的是在数据目录下:

Ver Cluster Port Status Owner    Data directory               Log file
10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
11  main    5433 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

其他回答

每个人都已经回答了,但只是最新的更新。如果您想知道所有配置文件的位置,那么在shell中运行这个命令

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';

Mac系统:/Library/PostgreSQL/9.0/data/base

不能进入目录,但可以通过:sudo du -hc data查看内容

Picmate的答案是正确的。在windows上,主DB文件夹的位置是(至少在我的安装)

C:\PostgreSQL\9.2\data\base\

而且不是在程序文件中。

他的2个脚本,将给你确切的目录/文件(s)你需要:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

我的在datname 16393和relfilenode 41603中

在Windows7上,所有数据库都由C:\Program Files (x86)\PostgreSQL\8.2\data\global.下名为pg_database的文件中的一个数字引用然后,您应该在C:\Program Files (x86)\PostgreSQL\8.2\data\base.下根据该数字搜索文件夹名称这就是数据库的内容。

Postgres将数据存储在其数据目录中的文件中。按照以下步骤进入数据库及其文件:

postgresql表文件对应的数据库是目录。整个数据目录的位置可以通过执行SHOW data_directory命令获取。 在UNIX中,如OS(例如:Mac) /Library/PostgreSQL/9.4/data 进入data目录下的base文件夹,其中包含所有数据库文件夹:/Library/PostgreSQL/9.4/data/base

通过运行(给出一个整数。这是数据库文件夹名):

SELECT oid from pg_database WHERE datname = <database_name>;

通过运行(给出一个整数。这是文件名):

SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

这是一个二进制文件。可以像往常一样获得文件的详细信息,如大小和创建日期时间。更多信息请阅读这个SO线程