【问题标题】:PostgreSQL createdb throw fatal errorPostgreSQL createdb 抛出致命错误
【发布时间】:2015-01-18 09:52:37
【问题描述】:

我正在尝试在 linux 机器上的 PostgreSQL 上创建数据库。我使用以下命令创建数据库。

createdb mydbname;

这会引发以下错误。

createdb:无法连接到数据库 postgres:致命:数据库 “postgres”不存在

我是 PostgreSQL 新手。你能指导我解决这个错误吗?只是我想在 psql 上创建一个数据库。

【问题讨论】:

  • 您使用的是哪个 linux 发行版?

标签: linux postgresql


【解决方案1】:

您似乎删除了 postgres 数据库。它是许多管理操作的默认设置,因此您可能需要重新创建它:

createdb --maintenance-db=template1 -T template0 postgres;

这样做是为了通过复制template0 来连接到内置数据库template1 以创建数据库postgres

完成后,您的命令:

createdb mydbname;

将正常工作。

【讨论】:

  • 这给出了以下错误createdb: illegal option -- d Try "createdb --help" for more information.
  • 然后我把参数-d改成-D。之后它给出了另一个错误,如下所示createdb: database creation failed: ERROR: syntax error at or near "TABLESPACE" at character 26
  • 我编辑你的命令如下createdb -T template1 postgres;这意味着将-d更改为-D。然后我的问题就解决了。那是你想要执行的命令吗?
  • 你能不能把它改成-T。解决方案工作正常。然后我可以将其标记为正确答案。
  • 如果您将答案中的-D 更改为-T,我可以将其设为绿色。它对其他人有用。
【解决方案2】:

su - postgres 将用户更改为 postgres
psql - 运行 psql 终端
postgres# create database somedatabase 创建数据库;
postgres#\c somedatabase 连接到数据库
somedatabase# 您已连接到该数据库作为 postgres 用户

【讨论】:

  • 这里还有第二个命令psql 给出如下错误(psql: FATAL: database "postgres" does not exist
  • 你启动服务器了吗? sudo service postgresql start 或类似
  • 它已经在运行。甚至我也可以使用其他已经存在的数据库。
  • psql -U postgres -d existingdb (将使用用户 postgres 和 with 连接到终端),然后运行 ​​create database newdb。似乎postgres数据库被删除了!!!???。我假设你没有删除它。
  • 运行psql -U postgres -l 列出所有数据库。你应该有 postgres 数据库。
【解决方案3】:
su - postgres change user to postgres
createdb
createdb somedatabase
psql somedatabase

第一行更改为 postgres 系统用户。第二行为 postgres 管理员用户创建一个数据库。第三行创建您尝试创建的数据库。第四行作为 postgres 用户连接到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2017-10-27
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多