在Ubuntu中,Postgres数据库文件保存在哪里?

31

我该如何在Ubuntu 10.04文件系统中找到Postgres 8.x数据库文件保存的位置?

2个回答

44

我需要从postgres提示符执行SHOW命令吗? - Mithun Sreedharan
2
执行这个查询就像你执行所有的查询一样。你可以使用pgAdmin、psql或者任何你使用的客户端。但是,你为什么需要这些文件呢?你有阅读Ubuntu手册吗? - Frank Heikens
@FrankHeikens:我有一个问题:如果用户可以访问Postgres数据库文件,他们能否从这些文件中提取数据库结构或其他信息?谢谢。 - Shang Wang
运行以上命令后,它给出了以下结果。这是什么意思? data_directory
/var/lib/postgresql/9.1/main (1 行)
- Taimoor Changaiz
1
@TaimoorChangaiz 嗯,这意味着数据文件存储在 /var/lib/postgresql/9.1/main。 - wadesworld
@ShangWang 如果用户有读取数据库文件的权限,那么从检查这些文件中可以获取到一些信息。他们必须相当精通才能弄清楚数据库结构,但如果您的数据库包含敏感数据,则这些文件不应该被除运行postgresql的用户之外的任何人阅读。 - wadesworld

7

以下是我在Ubuntu中查找Postgres数据库文件目录的方法:

在终端中运行以下命令以切换用户到postgres用户:

su - postgres

这将会请求 postgres 用户的密码,这个密码是在安装PostgreSQL时设置的。

接下来,您需要登录到psql 终端/提示符。可以通过运行以下代码来完成:

psql

它还将请求您在设置PostgreSQL时设置的postgres 密码

如果您成功登录,将会看到类似于这样的提示:

psql (11.5 (Ubuntu 11.5-3.pgdg18.04+1), server 10.10 (Ubuntu 10.10-1.pgdg18.04+1))
Type "help" for help.

postgres=#

此时,您将执行以下查询以显示存储在Linux机器上的Postgres数据库文件的目录:

SHOW data_directory;

这应该显示类似于以下内容的输出:
data_directory        
-----------------------------
/var/lib/postgresql/10/main
(1 row)

您现在可以通过导航到显示的目录来查找Postgres数据库文件。
然而,在Ubuntu中,PostgreSQL配置目录位于/etc/postgresql/10/main。请注意,10是我的服务器上安装的PostgreSQL版本号。您的版本可能是9.51112或任何其他版本。运行命令psql --version以确认您的PostgreSQL版本。
运行以下命令导航到该目录:
cd ~
cd /etc/postgresql/10/main

这就是全部内容。
希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接