我开始使用PostgreSQL,并且对创建数据库的两种方法感到困惑。第一次安装时,说明说我必须使用创建一个默认数据库。initdb /usr/local/var/postgres当我查找数据库时,可以看到我有一个名为postgres的数据库。现在,我可以使用其他两个命令创建数据库,而前一个是命令行脚本,而后者是SQL命令。对于名为“ postgres”的数据库,它将是:
createdb postgresCREATE DATABASE postgres两者都在我的数据库列表中建立了一个数据库。但是,当我尝试创建另一个数据库时initdb /usr/local/var/[someDbName],它没有出现在我的数据库列表中。那么,initdb和createdb有什么区别?
initdb是不是用来创建一个“新的数据库”。
如手册中所述,您需要它来创建“集群”或“数据目录”,然后存储使用创建的数据库create database。
引用手册:
在执行任何操作之前,必须初始化磁盘上的数据库存储区域。我们称其为数据库集群。(SQL标准使用术语目录集群。)数据库集群是由运行中的数据库服务器的单个实例管理的数据库的集合。
[...]
用文件系统的术语来说,数据库集群是一个目录,所有数据都将存储在该目录下。我们称其为数据目录或数据区域
简而言之:initdb在硬盘上创建必要的目录布局,以便能够创建和管理数据库。
这是Postgres服务器安装过程中的必要部分。
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |