我是博士后和赫罗库的新手.我试图从Heroku中提取数据库,但我遗漏了一些简单的东西.我做到了:

heroku pg:pull HEROKU_POSTGRESQL_IVORY_URL localdb

我得到了一个错误:

createdb: database creation failed: ERROR:  permission denied to create database

然后我试着用"sudo"这个词.我得到了:

createdb: could not connect to database template1: FATAL:  role "root" does not exist

所以,一定是我遗漏了一些我找不到的简单命令.我在Linux上,我已经安装了Postgres并正在工作.

推荐答案

createdb是SQL语句CREATE DATABASE的包装器,因此它需要连接到数据库.

默认情况下,所有Postgres命令行工具都会try 使用当前操作系统用户连接到数据库.正如错误消息所示,数据库中没有名为root的用户.所以你需要传递Postgres超级用户的名字,createdb才能连接.这个用户的名字通常是postgres.

另一个选项是将Linux用户切换到postgres(如果存在这样的Linux用户).

我不知道Heroku,也不知道你是如何开始createdb的,但是传递用户名的参数是-U(对于所有Postgres命令行程序).所以你需要

 createdb -U postgres name_of_new_database

Postgresql相关问答推荐

在输入稍有错误的PostgreSQL表中进行快速字符串搜索

锁定模式与PostgreSQL中的另一种锁定模式冲突到底是什么意思?

我想优化查询SQL

在 postgresql 数据库 timestampz 中保留用户偏移量

从dump文件中恢复三张表遇到的问题

PostgreSQL - 继承表的常见自动增量

Docker Compose + Spring Boot + Postgres 连接

SQL数据库表中的多态性?

?(问号)运算符在 Rails 中查询 Postgresql JSONB 类型

在函数中返回字段作为插入结果

在 postgreSQL 中更改序列名称

无法使用 sequelize 从本地 node 应用程序连接到 heroku postgresql 数据库

如何语法判断 PostgreSQL 配置文件?

使用 PostgreSQL 创建数据透视表

try 为 ror 应用程序设置 postgres,出现错误 - fe_sendauth:no password supplied

Postgresql 中的 NOT EXISTS 子句

如何将 CSV 数据插入 PostgreSQL 数据库(远程数据库)

如何使用 sql 或 phpPgAdmin 更改 PostgreSQL 数据库的数据库编码?

在 postgresql 中对使用 array_agg 创建的文本聚合进行排序

postgresql DB中唯一键的正确数据类型是什么?