PostgreSQL pg_hba.conf与“密码”身份validation将无法与PHP pg_connect?

我最近尝试了pg_hba.conf中的设置。 我读了PostgreSQL的文档,我认为“密码”auth方法是我想要的。 有很多人有权访问PostgreSQL正在处理的服务器,所以我不想要“信任”方法。 所以我改变了。 但是,PHP停止了与数据库的工作。

我得到的消息是“警告:pg_connect():无法连接到PostgreSQL服务器:致命:密码authentication失败,用户”myuser“在/my/path/to/connection/class.php在35行”。 这有点奇怪,因为我可以通过phppgadmin连接没有任何问题,也可以从我的家用电脑连接psql – 再次没有任何问题。

这是我的pg_hba.conf:

# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all password # IPv4 local connections: host all all 127.0.0.1/32 password # IPv6 local connections: host all all ::1/128 password 

我正在使用的连接string是pg_conenct:

 $connect_string = "host=localhost port=5432 dbname=mydbname user=auser password=apassword"; $dbConnection = pg_connect($connection_string); 

有人知道为什么会发生这种情况? 我配错了吗?

看来,当你的密码包含斜线(\ /)时,你需要在pg_connect连接url中转义它们。 逃脱后,我没有问题通过PHP连接到数据库。 希望这有助于有人有这个问题:)