📌  相关文章
📜  vagrant no pg_hba.conf entry for host - PHP (1)

📅  最后修改于: 2023-12-03 14:48:15.764000             🧑  作者: Mango

Vagrant: No pg_hba.conf entry for host - PHP

如果你在使用 Vagrant 和 PHP 进行开发,可能会遇到以下错误:

SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host "192.168.0.1", user "vagrant", database "mydb", SSL off

这个错误通常发生在尝试连接 PostgreSQL 数据库时。 这是因为默认情况下,PostgreSQL 只允许来自本地主机的连接。

要解决这个问题,你需要更新 pg_hba.conf 文件,允许来自你的 Vagrant 虚拟机 IP 的连接。

步骤
  1. 在你的 Vagrantfile 文件中添加以下行:
# 虚拟机 IP 地址,用于访问 PostgreSQL 服务器
db_host = "192.168.50.4" 

# 更新 pg_hba.conf 文件
config.vm.provision "shell",
  inline: "sudo sed -i 's/host\\s*all\\s*all\\s*127.0.0.1\\/32\\s*md5/host\\tall\\tall\\t#{db_host}\\/32\\t\\tmd5/g' /etc/postgresql/9.5/main/pg_hba.conf && sudo service postgresql restart",
  run: "always"
  1. 运行 Vagrant:
$ vagrant up

这个命令将更新 pg_hba.conf 文件并重启 PostgreSQL 服务器。现在你应该能够从你的 Vagrant 虚拟机连接到 PostgreSQL 数据库。

结论

如果你在使用 Vagrant 和 PHP 进行开发,并遇到了 "no pg_hba.conf entry for host" 错误,那么你需要更新 pg_hba.conf 文件,允许来自你的 Vagrant 虚拟机 IP 的连接。通过简单的步骤,你可以轻松地解决这个问题并恢复正常的开发流程。