我正在尝试通过命令行访问PostgreSQL。但是,每当我需要输入密码时,我会收到以下错误消息:致命错误:用户RMehta的密码验证失败。我非常确定密码验证失败的原因是我的数据库用户是postgres,而不是RMehta。
我找到的唯一解决方案是在命令行中使用runas,但我无法弄清楚如何使runas正常工作。感谢您提供的任何建议。我正在使用Windows 7和PostgreSQL 9.3。
我正在尝试通过命令行访问PostgreSQL。但是,每当我需要输入密码时,我会收到以下错误消息:致命错误:用户RMehta的密码验证失败。我非常确定密码验证失败的原因是我的数据库用户是postgres,而不是RMehta。
我找到的唯一解决方案是在命令行中使用runas,但我无法弄清楚如何使runas正常工作。感谢您提供的任何建议。我正在使用Windows 7和PostgreSQL 9.3。
对于Unix环境,命令行为
psql -U USERNAME -h localhost dbname
对于 Windows 环境,您可以考虑将“-”替换为“/”。
-U 选项允许您选择要连接的用户。
-h 选项允许您使用 TCPIP 协议连接,对于 Windows 可能是无用的。
/
替换 -
(或 --
)。 - user330315首先确保您的用户具有sudo权限,如果没有,您可以使用以下命令将您的用户添加为sudo用户:
sudo adduser <username> sudo
sudo -u postgres psql
sudo vim /etc/postgresql/<your_postgres_version>/main/pg_hba.conf
文件,并查找以下行:local all postgres md5 #peer
并对此发表评论。在该行正下方,必须有一行注释的内容,写着:
local all postgres peer
对于较旧版本,应该是:
local all postgres ident
取消该行的注释。
ii) 现在使用以下任何一个命令重新启动postgres:
sudo /etc/init.d/postgresql restart
或者
sudo service postgresql restart
iii) 现在您可以使用以下命令简单地登录到postgres:
sudo -u postgres psql
iv) 一旦您进入,您可以根据自己的需要创建任何操作,例如我要创建一个新数据库,您可以使用以下命令执行相同的操作:
CREATE DATABASE airflow_replica;
psql -h <hostname> -U <username> -d <dbname>
如果所有参数都正确,则会要求您输入先前输入的用户名的数据库密码。
pg_hba.conf
配置不正确: http://stackoverflow.com/search?q=[postgresql]Fatal%3A+password+authentication+failed+for+user+ - user330315