PG::ConnectionBad (FATAL: Peer authentication failed

部署完的新机器报错

App 12595 stderr: PG::ConnectionBad (FATAL:  Peer authentication failed for user "dbuser"
App 12595 stderr: ):

上网查了一下,很多帖子上都在说要修改/etc/postgresql/9.4/main/pg_hba.conf这个文件,然而并没有什么用

回忆一下整个数据库搭建过程

(1)创建数据库用户dbuser,并指定其为超级用户

sudo -u postgres createuser --superuser dbuser

(2)创建数据库uppers_staging, 并指定所有者为dbuser

sudo -u postgres createdb -O dbuser uppers_staging

(3)给dbuser设置登录密码(之前没设置密码的时候登录报这个错psql: fe_sendauth: no password supplied,设置了就ok了)

[email protected]:/home/ubuntu/campo/shared# sudo -u postgres psql
psql (9.4.4)
Type "help" for help.

postgres=# \password dbuser
Enter new password:
Enter it again:
postgres=# \q

(4)登录查看下数据库

[email protected]:/home/ubuntu/campo/current# psql -U dbuser -d uppers_staging -h 127.0.0.1
Password for user dbuser:
psql (9.4.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

uppers_staging=> \l
                                      List of databases
        Name        |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
--------------------+----------+----------+-------------+-------------+-----------------------
 postgres           | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                    |          |          |             |             | postgres=CTc/postgres
 template1          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                    |          |          |             |             | postgres=CTc/postgres
 uppers_development | root     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 uppers_staging     | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

dbuser的权限

uppers_staging=> \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 dbuser    |                                                | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}
 root      | Superuser, Create role, Create DB              | {}

接下来需要讲数据库uppers_staging 的所有权限都赋给dbuser,否则dbuser只能登录控制台,没有操作数据库的权限

 GRANT ALL PRIVILEGES ON DATABASE uppers_staging to dbuser;

这时候再来看一下数据库列表

uppers_staging=> \l
                                      List of databases
        Name        |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
--------------------+----------+----------+-------------+-------------+-----------------------
 postgres           | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                    |          |          |             |             | postgres=CTc/postgres
 template1          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                    |          |          |             |             | postgres=CTc/postgres
 uppers_development | root     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 uppers_staging     | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/dbuser           +
                    |          |          |             |             | dbuser=CTc/dbuser

报错的原因其实就是没有授权 @[email protected]

常见的数据库操作命令如下

\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
时间: 2024-08-03 23:20:38

PG::ConnectionBad (FATAL: Peer authentication failed的相关文章

PostgreSQL新手上路PG::ConnectionBad (FATAL: Peer authentication failed

部署完的新机器报错 App 12595 stderr: PG::ConnectionBad (FATAL: Peer authentication failed for user "dbuser" App 12595 stderr: ): 上网查了一下,很多帖子上都说要修改/etc/postgresql/9.4/main/pg_hba.conf 这个文件配置,然而并没有什么用 回忆一下整个数据库的搭建过程 (1)创建数据库用户dbuser,并指定为超级用户 sudo -u postgr

PostgreSQL提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’错误

PostgreSQL提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’错误 #将文件Database administrative 下列中的peer改为trust$sudo nano /etc/postgresql/10/main/pg_hba.conf#重新加载配置$sudo /etc/init.d/portgresql reload#peer(不可信),trust(可信),md5(加密) -bash-4.2$ p

pg_dump: [archiver (db)] connection to database “dbase” failed: FATAL: Peer authentication failed for user “postgres”

"Peer authentication" means that it's comparing your database username against your Linux username. It should work if you're logged in as postgres. You probably don't want to hit that md5 rule in pg_hba, as the postgres database user generally d

pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 的解决办法

转自:http://blog.csdn.net/tingyuanss/article/details/43763899 用pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 在stackoverflow上找到答案,出现此错误的原因是: Peer authentication 是默认的配置,如果你的计算机用户名和你的postgres数据库名是一样的话,那么就不会出现此错误,不需要为你的数据库设置密码. 还有一

(转载)postgresql navicat 客户端连接验证失败解决方法:password authentication failed for user

命令:su - postgres CREATE USER foo WITH PASSWORD 'secret'; ==================== 1.2个配置修改 postgresql.conf:修改 listen_addresses = '*' pg_hba.conf:增加 # IPv4 local connections:host    all             all             127.0.0.1/32            md5host    all  

解决GitHub使用双因子身份认证“Two-Factor Athentication”后无法git push 代码的“fatal: Authentication failed for ...”错误

在GitHub上采取双因子身份认证后,在git push 的时候将会要求填写用户的用户名和密码,用户名就是用户在GitHub上申请的用户名,但是密码不是普通登录GitHub的密码. 一旦采取双因子身份认证,登录GitHub的时候既需要输入用户名和密码,还需要输入一个即时的验证码,这样可以对Git账户提供双重的安全保障.但是git push 却怎么也没法推送到远端repo,总是提示身份认证错误:“fatal: Authentication failed for ...” 查了很多国内的解决方案,只

Github错误:fatal: Authentication failed for 'https://github.com/ ...

GitHub push代码发生错误:fatal: Authentication failed for 'https://github.com/ ... 使用的https提交,在用SourceTree提交代码时候发生错误,返回的错误提示说: fatal: Authentication failed for 'https://github.com/ ... 如图所示: 解决方案,重新执行git config命令配置用户名和邮箱即可: git config -–global user.name "xx

fatal: Authentication failed for又不弹出用户名和密码 解决办法

各位,如果能弹出来,一定是你账号密码搞错了,就别继续看了. image.png 切换命令行: image.png 依然报错, 说到这个问题,又可以长篇大论了, 我使用的是tortoisegit,window电脑 平常都是用ppk文件组合 _netrc文件进行登录的,这样设置之后基本上只需要输入密码,不再需要输入用户名就可以上传更新,要节省不少时间 _netrc文件可以自己搜索在C:\Users\Administrator\%username%\_netr下 内容如下: machine git.o

fatal: Authentication failed (二)

一.前言 前面一段时间写了一篇解决 git 上传代码出现的权限验证问题,还是没有很好的解决.现在还了方式,具体步骤如下: 二.操作流程 我们在上传代码到服务器,我们都需要安装 Git 版本控制.在安装的时候,建议大就都勾选 Git Bash 这个工具,便于我们直接使用上传和克隆代码.那么我们怎么解决这个 fatal: Authentication failed 呢?首先我们找到 Git Bash ,使用 “以管理员身份运行” 使用 Git 命令进入到你项目所在的文件夹下,在该路径下输入: git