Fastidious
Fastidious

Reputation: 1319

How can I access Postgresql hosted in Vagrant as a guest in Windows?

I am trying to connect to Postgresql using the PGAdmin III client in Windows 8.1. Postgresql is installed in a local copy of Vagrant (Ubuntu 14.04) on my Windows machine. It's up and running on Vagrant:

LISTENING

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      814/postgres

VERIFIED USER/PASS/LOCAL CONNECTION

I can access Postgresql locally in Vagrant via SSH in Windows:

vagrant@precise32:/etc/postgresql/9.1/main$ psql -h localhost testdb myuser
Password for user myuser:
psql (9.1.15)
SSL connection (<removed)
Type "help" for help.

testdb=> \quit

PG_HBA.CONF

I added this to my pg_hba.conf file:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             <my IP>                 md5

VAGRANT CONFIG

My Vagrant config is set to port forward to 5432:

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 5432, host: 15432

POSTGRESQL.CONF

And my postgresql.conf file is set to listen on all IP's:

#listen_addresses = '*'    # what IP address(es) to listen on;

PGADMIN ERROR

So, what am I missing here when I try to connect as a guest via PGAdmin to the host and I get the following message, which indicates it sees it but something is not letting me through?:

An error has occurred:

Error connecting to the server: server closed the connection unexpectedly
This probably means the server terminated abnormally before or while processing the request.

PGADMIN CONNECTION INFO

Host: localhost
Port: 15432
Service: <blank>
Maintenance DB: postgres
Username: Myuser (verified)
Password: ****** (verified)
Store password:
Colour: <blank>
Group: Servers

Upvotes: 4

Views: 5003

Answers (3)

David Carlos
David Carlos

Reputation: 21

I had the same problem in linux, and i think in windows this can happen too. In my postgresql.conf the port variable was defined in two places. First with 5432 value, and second with 5435 value.

Running telnet vm_ip 5435, i was able to connect to the server running in the vm.

In my case my vm was running with public_network option, so i have a external ip. In this case, you don't need to forward a port, once you will access the vm,for example, with 192.168.60.15:5435 address.

Upvotes: 0

TimoSolo
TimoSolo

Reputation: 7325

In your Vagrant config add a IP (if not set) eg:

config.vm.network :forwarded_port, host: 15432, guest: 5432
config.vm.network :private_network, ip: "192.168.111.222"

Now from PGAdmin in Windows connect to host 192.168.111.222, port 5432.

Worked for me although I'm not know why.. :P

Upvotes: 1

PeterMacko
PeterMacko

Reputation: 882

I dont know what you mean with in pg_hba.conf but in vagrant enviroment you should use ip like 10.0.2.2/24 instead your machine network address.

Upvotes: 0

Related Questions