我最近安装了最新版本的Ubuntu,但我还不习惯.我在连接PostgreSQL和pgadmin3时遇到了几个问题.

我试图按照几个教程创建一个可以在pgadmin3中使用的localhost服务器.我并没有真正击中目标,我想我通过安装、卸载、安装、卸载、try 我找到的答案让情况变得更糟...现在我不确定我的PostgreSQL是否干净.有可能我又安装了两个PostgreSQL,我不确定.我试图卸载它,但我有一个错误,基本上说PostgreSQL不在sudo中.

问题是,我现在在控制台中运行psql时出现了以下错误:

$psql
psql: FATAL: role "user" does not exist 

我找不到pg_hba.conf个,在这一点上,我太害怕让事情变得更糟,try 以下任何其他帖子.

我怎样才能做到这一点?

推荐答案

正如 comments 中指出的,你的pg_hba.看起来不错.

通常,数据库将以postgres用户的身份运行(判断ps aux | grep postgres以了解postgres运行的用户名).

以该用户的身份登录,例如sudo su - postgres,然后创建一个与您的普通Ubuntu用户帐户(createuser username)匹配的用户,最后创建一个同名数据库,并将所有者(-O)设置为该数据库用户,如下所示:createdb -O username username).

这应该可以让呼叫psql正常工作,而pgadmin——只要你以默认用户用户名启动它——也应该正常工作.

编辑:默认情况下,psql将使用您的Linux用户名作为数据库用户名和数据库名称的默认值.您可以使用-U someotherusername覆盖用户名,并通过将该DB名称添加到命令行(如psql someotherdbname)来连接到其他数据库.您可能还会发现psql -l对于列出现有数据库很有用.

Postgresql相关问答推荐

Postgs SQL用于比较两个表之间的数据并填充到目标中

无法在timscaleDb中创建Hypertable

PostgreSQL\d命令:有办法只 Select 一列吗?

Postgres:创建分区需要很长时间

为什么 Postgres 中的 now() 和 now()::timestamp 对于 CET 和 CEST 时区如此错误?

PostGresql :正则表达式 Select 其中只有一个正斜杠的行

如何查找具有包含花括号内值且遵循模式的属性的顶点?

在 SQL 上返回负值

将一列与另一列的每个元素进行比较,该列是一个数组

为什么这里的默认格式不同? (ISO 8601 的两种不同实现)

Rails 3:在 Postgres 支持的 ActiveRecord 中使用 json 作为列类型时出现迁移错误

timezone date_trunc 函数

Docker - Postgres 和 pgAdmin 4:Connection refused

从time without time zone和时区名称中获取time with time zone

Postgres 数据库文件保存在 ubuntu 中的什么位置?

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

如何减少存储(缩减)我的 RDS 实例?

Postgresql滚动删除旧行?

如何为 adminpack 解决 PostgreSQL pgAdmin 错误Server instrumentation not installed?

错误:permission denied for language c