密码验证失败,密码url编码

时间:2017-10-06 05:44:39

标签: ruby database postgresql encoding passwords

我的database.yml文件是这样的:

  base: &base   
   adapter: postgres  
   encoding: UTF-8  
   host: hostHidden   
   username: postgres   
   password: passw%#rd   
   schema_search_path: public   
   port: hiddenPort         
   production: &production   
   database: myDb   
  <<: *base

我正在使用DataMapper来提供服务。在postgres 9.5.9上运行。我也可以使用psql并使用相同的用户/通道组合在我的数据库上执行所有事务(可以手动连接到db)。

当我的服务尝试连接到我的数据库时,我收到如下错误:

 DataObjects::SQLError: Can't connect: postgresql://postgres:passw%25%23rd@hostHidden:hiddenPort/myDb?database=myDb&adapter=postgres&encoding=UTF-8&host=hiddenHost&username=postgres&password=passw%2525%2523rd&schema_search_path=public&port=hiddenPort
    FATAL: password authentication failed for user "postgres" (code: , sql state: , query: , uri: )

特殊字符已编码,因此身份验证失败。

更新: 做了一些调查,发现密码是网址编码,工作完美。 尝试使用以下方法手动连接到DB:

psql 'postgresql://postgres:passw%25%23rd@hostHidden:hiddenPort/myDb'

并且工作得很好。但无法弄清楚为什么服务无法正确连接。

任何帮助将不胜感激。

0 个答案:

没有答案