我创建了一个PostgreSQL实例,该实例在Vagrant / VirtualBox的Ubuntu / Bionic框中运行,Django可以在我的开发环境中使用它。我想在连接DJango之前测试通过终端或pgAdmin连接到它的能力,以确保它首先在该端工作。我的想法是,如果我确信连接可以工作,那么以后可以简化Django调试;但是,我没有成功。
我尝试编辑许多帖子建议的配置文件,但没有任何效果。但是,我可以通过在Vagrantfile中分配的ip来ping通此框,而不会出现问题-但是在用ping 10.1.1.1:5432
指定端口5432时不能。我也可以在框中使用psql,因此它正在运行。
我确保在vm上启用ufw
,创建了允许端口5432的规则,并确保使用sudo ufw status
占用了端口。我还确认了我正在使用show
中的psql
命令编辑正确的文件。
以下是当前的相关配置:
Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.hostname = "hg-site-db"
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 1
end
config.vm.box = "ubuntu/bionic64"
config.vm.network "forwarded_port", host_ip: "127.0.0.1", guest: 5432, host: 5432
config.vm.network "public_network", ip: "10.1.1.1"
config.vm.provision "shell", inline: <<-SHELL
# Update and upgrade the server packages.
sudo apt-get update
sudo apt-get -y upgrade
# Install PostgreSQL
sudo apt-get install -y postgresql postgresql-contrib
# Set Ubuntu Language
sudo locale-gen en_US.UTF-8
SHELL
end
/etc/postgresql/10/main/postgresql.conf:
listen_addresses = '*'
/etc/postgresql/10/main/pg_hba.conf-我知道这是不安全的,但是我只是想找出为什么它不起作用,并计划返回并更正此错误:
host all all 0.0.0.0/0 trust
答案 0 :(得分:1)
正如我们在评论中讨论的那样,您应该从转发的端口定义中删除host_ip,而仅保留来宾端口和主机端口。