我完全无能为力,也许你们能帮帮我。我在新的 MacOSX Lion 下安装了 PostgreSQL。当我尝试使用 pgAdminIII.app 连接到我的本地主机时,它显示:
Error connecting to the database: FATAL password authentication failed for user postgres
我只是不知道该怎么办?我的密码都不管用。我的 adminpass 和“postgres”都不管用,其他的都不管用。
我尝试通过控制台再次安装它,在那里我发现了这个有用的链接:http://www.peerassembly.com/2011/08/...resql-on-lion/但问题是,当我尝试运行时,createuser -a -d _postgres
相同的密码问题再次出现。我似乎找不到解决办法。总是密码错误。
顺便说一句。安装 postgres 后,我的机器上有一个名为“PostgreSQL”的新用户。
有什么想法吗?我陷入困境,我真的需要让它发挥作用。
答案1
最简单的解决方案是告诉 postgres 让您进入。找到您的 pg_hba.conf。此文件的位置取决于您的安装方式,但它位于 postgresql 安装的数据目录中。在终端中执行以下命令,让计算机为您找到它。
sudo find / -name pg_hba.conf
(需要 sudo 因为它可能位于您作为普通用户无权访问的文件夹中)
此文件中有很多注释来解释其工作原理。您要做的就是将本地和/或 127.0.0.1 连接的身份验证方法设置为信任。完成此操作后,postgresql 将不再验证您的密码(虽然 pgAdmin 仍然倾向于要求输入密码,但只需输入一些内容)。当您在 pgadmin 中时,您可以更改密码。然后,您将 pg_hba.conf 中的方法改回 md5 以确保安全。
你是如何安装 PostgreSQL 的?我个人认为一键安装程序好简单。
编辑:回复评论
PostgreSQl 有自己的内部用户名列表。这些名称与 OSX 用户名无关。OSX 用户名 PostgreSQL 用于运行 postgresql 的 postmaster 进程,对系统具有有限的访问权限。postgres 是由一键安装程序创建的数据库超级用户名。
服务器不监听消息有点奇怪,因为密码验证仅在建立连接后发生,所以我本来希望您早点收到此错误。也许你改变了什么?无论如何,我从错误消息中怀疑 pgAdmin 正在尝试连接到 localhost,该主机解析为 ::1(ipv6 地址),但据我所知,postgresql 仅使用一键安装程序监听 ipv4。当您右键单击 pgAdmin 中的 Postgresql 条目并选择属性时,您可以更改 pgAdmin 连接到的主机。将其更改为 127.0.0.1 并重试。
答案2
set pg_hba.conf
pg_hba.conf
在哪里$PG_DATA
。例如,我的是/Source/local/pgsql91/data
。
host all postgres 127.0.01/32 trust
然后
/usr/pgsql-9.1/bin/psql -U postgres -d postgres -h 127.0.0.1
否则(没有-h
)psql会将您反弹到您的网络ip(ifconfig
)例如对我来说192.168.0.1
这是md5并且psql默认是明文。