7

我是这种类型的数据库的新手,我尝试通过指定 psql 的命令行连接到它,然后输入空白密码。我收到上述错误(在这个问题的标题中)。

我不知道默认密码是什么。

pg_hba 文件:

        IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    host    replication     DIMA        127.0.0.1/32            trust
    host    replication     DIMA        ::1/128                 trust

postgresql.config

listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)
port = 5432             # (change requires restart)

我以这种方式重新启动服务器:

C:\metasploit\postgresql\bin\pg_ctl -D "C:\metasploit\postgresql\myData" -l logfile start

我想要的只是进入数据库并更改我的密码。并且最好进入 PgAdmin-III(以 GUI 形式)

4

2 回答 2

2

如果您正在使用trust身份验证(如果那样,您应该只用于开发),您将不会被提示输入密码psql

我会说你没有正确重启服务器。也许使用restart而不是start

于 2013-08-10T00:43:32.773 回答
0

正如克雷格所说,您可能没有重新启动服务器,您应该使用重新启动而不是启动。(重新加载也可以正常工作,但在 Windows 上不确定)

但这不是你的问题。几乎可以肯定,关键问题是您没有连接到本地主机,并且您的线路中pg_hba.conf需要来自其他主机的密码。

请注意,如果您连接到外部 IP 地址,您将遇到不同或更一般的规则。

基本上,此错误意味着该pg_hba.conf文件设置为密码身份验证,但未提供密码。如果你不能快速找到问题,连接的 IP 地址应该在 postgresql 日志文件中。

至于使用信任,您当然应该在更改密码后将其更改回来。通常情况下,我同意 Craig 的观点,即不应在开发之外使用信任身份验证,但这是对重要用户进行密码重置的一种合法方法,并且在 Windows 上,这必须以平台上支持良好的方式来完成。

最后一点,问题是您如何登录。如果您要设置它,您可能应该使用psql -h 127.0.0.1 [dbname]以确保 Windows 不会做一些奇怪的事情,例如尝试使用机器名称(以及外部 IP)进行连接。

于 2013-11-06T02:20:39.860 回答