我最近尝试了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连接到数据库。 希望这有助于有人有这个问题:)