我开始使用 PostgreSQL,但我对创建数据库的两种方法感到困惑。当我第一次安装它时,说明说我必须创建一个默认数据库initdb /usr/local/var/postgres
当我查找数据库时,我可以看到我有一个名为 postgres 的数据库。现在我可以使用另外两个命令创建数据库,前者是命令行脚本,后者是 SQL 命令。对于称为数据库的“postgres”,它将是:
createdb postgres
CREATE DATABASE postgres
两者都在我的数据库列表中设置数据库。当我尝试创建另一个数据库时initdb /usr/local/var/[someDbName]
不过,它没有出现在我的数据库列表中。那么initdb和createdb有什么区别呢?
initdb
is not用于创建“新数据库”。
如手册中所述 https://www.postgresql.org/docs/current/static/creating-cluster.html您需要它来创建一个“集群”或“数据目录”,然后存储使用创建的数据库create database
.
引用手册:
在执行任何操作之前,必须初始化磁盘上的数据库存储区域。我们称之为数据库集群。 (SQL 标准使用术语目录集群。)数据库集群是由正在运行的数据库服务器的单个实例管理的数据库集合。
[...]
在文件系统术语中,数据库集群是一个单一目录,所有数据都将存储在该目录下。我们称之为数据目录或数据区域
简而言之:initdb
在硬盘上创建必要的目录布局,以便能够创建和管理数据库。
这是必要的一部分安装Postgres 服务器的进程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)