Database Postgresql server上名为postgres的默认数据库

Database Postgresql server上名为postgres的默认数据库,database,postgresql,Database,Postgresql,显然,每个postgresql server安装都默认创建了一个数据库“postgres”。有人能告诉我或给我指出它的用途吗?它似乎没有明确的用途。根据文件: 创建数据库集群包括创建数据库数据所在的目录,生成共享目录表(属于整个集群而不是任何特定数据库的表),以及创建“template1”和“postgres”数据库 [……] postgres数据库是供用户、实用程序和第三方应用程序使用的默认数据库 (来源:)还有一个数据库模板0,当你把所有其他的都搞糟时,它是你的安全网 postgres是您的

显然,每个postgresql server安装都默认创建了一个数据库“postgres”。有人能告诉我或给我指出它的用途吗?

它似乎没有明确的用途。根据文件:

创建数据库集群包括创建数据库数据所在的目录,生成共享目录表(属于整个集群而不是任何特定数据库的表),以及创建“template1”和“postgres”数据库

[……]

postgres数据库是供用户、实用程序和第三方应用程序使用的默认数据库


(来源:)

还有一个数据库模板0,当你把所有其他的都搞糟时,它是你的安全网

  • postgres是您的默认数据库 联系
  • template1是您的默认值 创建新的数据库,这些是 像template1一样创建
  • template0在template1时可用 已损坏(设置错误等) 你不想花很多钱 是时候解决这个问题了。放下 template1并创建一个新的template1 使用数据库模板0

  • 当客户端应用程序连接到Postgres服务器时,它必须指定要连接到的数据库。如果您不知道数据库的名称(在您所连接的邮局主管所服务的集群内),可以使用以下命令找到数据库名称列表:

    psql-l
    
    当您运行该命令时,psql将连接到服务器并查询pg_数据库以获取数据库名称列表。但是,由于psql是一个Postgres客户机应用程序,因此在不知道至少一个数据库的名称(Catch-22)的情况下,它无法连接到服务器。因此,当您运行
    psql-l
    时,psql被硬编码为连接到名为“postgres”的数据库,但在这种情况下,您可以指定模板数据库:

    psql-l-d模板1
    
    如果在创建新数据库时使用多个数据库连接,则无法对
    template1
    template0
    进行所有连接

    如果创建新数据库时源数据库被其他连接访问,Postgresql将抛出错误

    因此,为了创建新的数据库,最好连接
    postgres

    上面的评论问道:“如果您不使用postgres数据库,删除它是否安全?”-CMCDRANGKAI 2016年10月22日10时37分

    初始化后,数据库集群将包含一个名为postgres的数据库,它是供实用程序、用户和第三方应用程序使用的默认数据库。数据库服务器本身并不要求postgres数据库存在,但许多外部实用程序假定它存在


    [注意:数据库群集是由运行中的数据库服务器的单个实例管理的数据库集合。]

    如果不使用
    postgres
    数据库,删除它是否安全?@cmcdragokai,如果我没有弄错,您仍然需要
    postgres
    数据库或类似的东西。例如,如果您使用删除和重新创建应用程序数据库的选项转储数据库,则当您尝试还原到同一数据库时,它将无法工作,因为您已连接到尝试删除和创建的数据库。因此,您必须连接到数据库才能删除数据库,仅连接到运行数据库的服务器是不够的?