如何使psql默认为localhost?


10

我有以下情况:

saji@geeklap:~$ psql -U postgres
psql: FATAL:  Ident authentication failed for user "postgres"

saji@geeklap:~$ psql -h localhost -U postgres
Password for user postgres: 
psql (8.4.14)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=# 

我试图以postgresql用户身份登录到系统中安装的服务器postgres。只有指定,我才能登录-h localhost。而psql文档说:

如果省略主机名,则psql将通过Unix域套接字连接到本地主机上的服务器,或者通过TCP / IP连接到没有Unix域套接字的计算机上的localhost。

参考: http : //www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON

为什么在不指定主机的情况下无法登录,是否有一些配置文件需要任何更改才能使psql文档中所述的事情发生?


创建一个.psqlrc指定默认值的,或者只是编辑pg_hba.confmd5local(unix套接字)连接使用身份验证。请参阅文件pg_hba.confpsql
Craig Ringer 2012年

Answers:


7

实际上,它的工作方式已记录在案。

省略主机名时,psql连接到编译路径的Unix域套接字。该部分在您的情况下有效,否则将输出与问题显示不同的错误消息。

问题中的错误消息:

psql: FATAL:  Ident authentication failed for user "postgres"

与以下事实有关:使用Unix域套接字时,只有Unix用户postgres有权以数据库用户postgres身份进行连接。这是在pg_hba.conf文件中配置的。

以普通用户身份登录后在Ubuntu中通常应执行的操作,但您是系统管理员:

$ sudo -u postgres psql

1
谢谢..请更改sudo -u postgresql psqlsudo -u postgres psql。我试图编辑。但是不能,因为编辑只有不到6个字符。
saji89 '11

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.