【发布时间】:2011-01-23 03:41:25
【问题描述】:
显然,在每个 postgresql 服务器安装上默认创建一个数据库“postgres”。谁能告诉我或指向我记录它的用途?
【问题讨论】:
标签: database postgresql
显然,在每个 postgresql 服务器安装上默认创建一个数据库“postgres”。谁能告诉我或指向我记录它的用途?
【问题讨论】:
标签: database postgresql
它似乎并没有明确的目的。根据文档:
创建数据库集群包括创建数据库数据所在的目录、生成共享目录表(属于整个集群而不是任何特定数据库的表),以及创建“template1”和“postgres” “数据库。
[...]
postgres 数据库是供用户、实用程序和第三方应用程序使用的默认数据库。
【讨论】:
还有数据库模板0,当你搞砸所有其他人时,你的安全网。
【讨论】:
postgres 数据库,删除它是否安全?
postgres 数据库或类似的东西。例如,如果您使用删除和重新创建应用程序数据库的选项来转储数据库,那么当您尝试恢复到同一个数据库时,它将无法工作,因为您已连接到您尝试删除和创建的数据库.
当客户端应用程序连接到 Postgres 服务器时,它必须指定它想要连接到的数据库。如果您不知道数据库的名称(在您连接的 postmaster 服务的集群内),您可以使用以下命令找到数据库名称列表:
psql -l
当您运行该命令时,psql 会连接到服务器并查询 pg_database 以获取数据库名称列表。但是,由于 psql 是 Postgres 客户端应用程序,它无法在不知道至少一个数据库名称的情况下连接到服务器:Catch-22。因此,当您运行psql -l 时,psql 被硬编码以连接到名为“postgres”的数据库,但在这种情况下您可以指定一个模板数据库:
psql -l -d template1
【讨论】:
上面的评论问:“如果你不使用它,删除 postgres 数据库是否安全?” - CMCDragonkai 2016 年 10 月 22 日 10:37
From the PostgreSQL documentation
初始化后,一个数据库集群将包含一个名为 postgres 的数据库,它是实用程序、用户和第三方应用程序使用的默认数据库。数据库服务器本身不需要 postgres 数据库存在,但许多外部实用程序假定它存在。
[注意:数据库集群是由正在运行的数据库服务器的单个实例管理的数据库集合。]
【讨论】: