PostgreSQL数据库的文件存储在哪里?
当前回答
在“PostgreSQL数据库在Linux上的默认位置”中建议,在Linux下你可以使用以下命令找到:
ps aux | grep postgres | grep -- -D
其他回答
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线程
在“PostgreSQL数据库在Linux上的默认位置”中建议,在Linux下你可以使用以下命令找到:
ps aux | grep postgres | grep -- -D
每个人都已经回答了,但只是最新的更新。如果您想知道所有配置文件的位置,那么在shell中运行这个命令
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';
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中
打开pgAdmin,进入特定数据库的属性。找到OID,然后打开目录
<POSTGRESQL_DIRECTORY>/data/base/<OID>
这里应该有您的DB文件。
推荐文章
- PostgreSQL删除所有内容
- 为什么PostgreSQL要对索引列进行顺序扫描?
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- PostgreSQL返回JSON数组的结果集?
- PostgreSQL通配符LIKE用于单词列表中的任何一个
- 检查Postgres JSON数组是否包含字符串
- psql: FATAL: Peer authentication failed for user "dev"
- 如何在Postgres/SQL中获得两个整数的最小/最大值?
- 如何在postgresql中显示函数,过程,触发器源代码?
- 如何用postgres将间隔转换为小时数?
- 在postgresql中将查询结果按月和年分组
- 如何改变一个列的数据类型在PostgreSQL表?