PostgreSQL 数据库存储在我的计算机上的什么位置?

7 postgresql

所以这可能是一个愚蠢的问题,但我真的很陌生。所以我在 postgres 服务器上创建一个 Postgres 数据库,我用这个命令启动:

sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)

然后我做了以下命令:

CREATE DATABASE database;
Run Code Online (Sandbox Code Playgroud)

据说创建了数据库。但是这个数据库在哪里?我在哪里可以在我的电脑上找到它?

小智 9

您的数据的确切存储位置取决于您安装和配置 PostgreSQL 的方式。运行

show data_directory
Run Code Online (Sandbox Code Playgroud)

命令作为 postgres 用户(来自 psql 工具或其他客户端)会告诉你它在哪里。例如,如果您从 debian 或 ubuntu 存储库安装它,您可能会发现您的数据文件位于 /var/lib/postgresql/9.2/main 之类的地方。

不过那里可能没有什么特别有趣的东西。有时有一些配置文件,如 pg_hba.conf(Windows 版本至少将它们放在那里),但如果您使用的是 debian,您会在 /etc/postgresql/ 下找到这些文件。

如果您希望您的数据库是一个可以在系统之间移动的单个文件,那么您最好使用更简单的嵌入式数据库,如 sqlite。


Mik*_*ll' 6

要查看数据目录的位置,请使用此查询。

show data_directory;
Run Code Online (Sandbox Code Playgroud)

要查看所有运行时参数,请使用

show all;
Run Code Online (Sandbox Code Playgroud)

您可以在文件系统的其他部分创建表空间。要查看表空间的位置(可能位于数据目录之外的文件系统中的某个位置),请使用此查询。

SELECT * FROM pg_tablespace;
Run Code Online (Sandbox Code Playgroud)


fra*_*ncs 2

当您执行“CREATE DATABASE数据库”命令时,它使用pg_default表空间;

你可以先创建自己的表空间,比如

CREATE TABLESPACE tbs_01 [ OWNER user_name ] LOCATION 'directory';
Run Code Online (Sandbox Code Playgroud)

然后创建数据库:

CREATE DATABASE datname
WITH  OWNER = user_name 
      TEMPLATE = template0 
      ENCODING = 'UTF8' 
      TABLESPACE = tbs_01;
Run Code Online (Sandbox Code Playgroud)