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 postgres createuser --superuser dbuser

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

sudo -u postgres createdb -O dbuser uppers_staging

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

# sudo -u postgres psql
psql (9.4.4)
Type "help" for help.

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

(4)登录查看下数据库

# 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 |
(5 rows)

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
(5 rows)

其实报错的原因就是没有授权

常见的操作命令如下

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 07:12:53

PostgreSQL新手上路PG::ConnectionBad (FATAL: Peer authentication failed的相关文章

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

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  

OpenGL教程之新手上路

Jeff Molofee(NeHe)的OpenGL教程- 新手上路 译者的话:NeHe的教程一共同拥有30多课,内容翔实,而且不断更新 .国内的站点实在应该向他们学习.令人吃惊的是,NeHe提供的例程源代码差点儿都有跨平台的不同编译版本号,涉及从Visual C++.Borland C++.Visual Basic.MacOS X/GLUT.Linux/GLX.Code Warrior.Delphi.C++ Builder.MASM.ASM.MingW32&Allegro以及Python等等的不

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

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

PostgreSQL新手教程

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选.本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用.安装1. 首先,安装PostgreSQL客户端.  sudo apt-get install postgresql-client然后,安装PostgreSQL服务器.  sudo apt-get install postgresql2. 正常情况下,安装

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