【问题标题】:psql.exe - password authentication failed in windowspsql.exe - Windows 中的密码验证失败
【发布时间】:2021-12-27 18:15:32
【问题描述】:

我是 PostgreSQL 的菜鸟。我在 windows7 上安装了 9.2 版。在安装过程中它要求输入密码,我输入了它。 现在,每当我运行 d:\tools\PostgreSQL9.2\bin\psql.exe 时,它​​都会要求输入密码。当我输入密码时它不接受并且 它显示“用户“user1”的密码验证失败。我已经重新安装了两次。我也尝试进入我的系统 密码。

我正在尝试让下面的命令工作

psql.exe -f db/codedb.sql development

我应该怎么做才能让它工作?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    这是安装 Postgresql 的简单解决方案而不会出现错误(集群错误和身份验证错误),我按照以下步骤操作,并且成功安装了 postgresql

    1. 从控制面板在窗口中创建新用户-->用户帐户

    2. 登录新用户(你已经创建)后,将 postrgresql(.exe) 应用程序复制到任何目录('C' 除外)并单击应用程序进行安装(不要忘记将安装目录更改为你复制了上面的应用程序文件)。

    3. 安装完成后更改 postgresql.conf 和 pg_hba.cof 中的以下配置

    在您的postgresql.conf 中添加如下内容

    listen_addresses = '*'  
    

    在您的pg_hba.cof 中添加如下内容

    # 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   sameuser    postgres    127.0.0.1/32    trust
    #host    replication     postgres        ::1/128                 md5 
    

    【讨论】:

      【解决方案2】:

      在 pg_hba.conf 中更改 "trust" 而不是 "md5" 以连接到数据库并更改密码。

          --------------------configuration in pg_hba.conf---------------
          local   all         all                               trust  
          local   all         postgres                          trust          
          host    all         all         ::1/128               trust
      

      【讨论】:

      • 请记住,仅更改 IPv4 可能不起作用,您应该按照答案建议同时更改 IPv4 和 IPv6
      【解决方案3】:

      连接时尝试设置用户名。

      psql.exe -U username -d dbname -f somefile.sql
      

      您可能在安装过​​程中设置了默认的“postgres”用户。不确定您是否创建了其他任何人。

      要添加其他用户和数据库,只需以 postgres 身份连接到 postgres 数据库并执行以下操作:

      CREATE USER myuser WITH ENCRYPTED PASSWORD 'secret';
      CREATE DATABASE mydb OWNER myuser;
      

      如果您的机器是安全的,您可能还想设置一个password file

      【讨论】:

      • 谢谢,但我收到一条警告消息:“额外的命令行参数 somefile.sql 被忽略”,因此没有导入 sql 文件
      • 如果任何参数中有空格,您需要“像这样”引用它们,否则它应该可以正常工作。
      • 我试过 psql.exe -U postgres -d development "d:\myprojects\ruby\HelloWorld\db\data.sql" 仍然得到消息忽略了额外的命令行参数...跨度>
      • 你为什么忽略了“-f”?
      • 嗨@RichardHuxton 感谢您的评论。您可以在没有“.exe”的情况下使用 psql,“psql -U username -d database etc....”命令可以正常工作。
      猜你喜欢
      • 2020-09-21
      • 2015-04-19
      • 2017-04-03
      • 2016-05-27
      • 2017-11-09
      • 1970-01-01
      • 2022-08-15
      • 2015-09-10
      相关资源
      最近更新 更多