PostgreSQL : can't connect with new created users

标签 postgresql ubuntu-16.10

这是错误:

$  psql -h localhost -U kMbjQ6pR9G  -d fzvqFILx0d
Password for user kMbjQ6pR9G: 
psql: FATAL:  password authentication failed for user "kMbjQ6pR9G"
FATAL:  password authentication failed for user "kMbjQ6pR9G"

我可能错过了使用新 PostgreSQL 的配置步骤。

这是我尝试使用自己的数据库创建新用户的命令行:

sudo -u postgres bash -c "psql -c \"CREATE USER $USER WITH PASSWORD '$PASSWORD';\"" &&
sudo -u postgres bash -c "psql -c \"CREATE DATABASE $DB;\"" &&
sudo -u postgres bash -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE $DB to $USER;\"" &&

这是 PostgreSQL 配置:

$ sudo grep -v ^# /etc/postgresql/9.5/main/pg_hba.conf  |grep -v ^$
local   all             postgres                                md5
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

以下是我创建的所有用于测试的帐户:

$ sudo  -u postgres bash -c 'psql -c "select * from pg_shadow;"'
Password: 
  usename   | usesysid | usecreatedb | usesuper | userepl | usebypassrls |               passwd                | valuntil | useconfig 
------------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
 av6izmbp9l |    16384 | f           | f        | f       | f            | md5a49721ef3f5428e269badc03931baf48 |          | 
 rqmejchq7n |    16386 | f           | f        | f       | f            | md54edf3a05ca96a435f94152b75495e9dc |          | 
 yyfiknesu8 |    16388 | f           | f        | f       | f            | md5b3d4a03913569abbf318bdc490d0f821 |          | 
 qgv2ryqvdw |    16390 | f           | f        | f       | f            | md5d0959b4b5e1ed2982e19e4d0af574b11 |          | 
 postgres   |       10 | t           | t        | t       | t            | md5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |          | 
 pf09joszuj |    16392 | f           | f        | f       | f            | md5a920dc31666459e5f0a96e9430d07f02 |          | 

我认为这很简单,但我忽略了这一点。

感谢您的支持, 大卫。

最佳答案

尝试连接时是否明确指定了数据库?

psql -h localhost -U myuser -d mydb

这就是我通常设置用户完全拥有给定数据库的方式:

create role myuser with createdb login encrypted password 'mypassword';
create database mydb with owner 'myuser' encoding 'utf8';

pg_hba.conf:
local   myuser           mydb                                  md5
...

关于PostgreSQL : can't connect with new created users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403009/

相关文章:

sql - PostgreSQL:如何为时间戳类型的列指定只有日期值的 WHERE 条件?

performance - 在 Postgres 数据库上,关系约束会降低性能吗?

database - PostgreSQL 的隐藏特性

sql-server-2005 - 在 windows xp sp2 上创建从 sql server 2005 到 postgresql 8.3.12 的数据库链接

mysql - 多态性| self 引用| Rails 事件记录模型

linux - 无法在 Ubuntu 16.10 上启动 MongoDB

docker - Ubuntu 16.10:获取最新的Docker和Docker Compose版本?

linux - 易诺德 | ubuntu | sudo apt-get 更新 |镜像404错误

c++ - SDL 不渲染(Linux、i3wm)