Filip
Filip

Reputation: 2344

Connect to PostgreSql database in Linux VirtualBox from Win7

As said in headline, from Win7 host I'm trying to access Postgres 9.3 established in Linux Centos 5.8 which is in VirtualBox on the same machine. I'm trying to access it from PGAdmin and everything is OK when I start the Postgre from Win7 services, so PGAdmin is well configured.

What have I tried? I've read many articles about this subject, and even some questions on this forum but nothing worked. I have:

  1. switched to NAT and forwarded port 5432 in VirtualBox GUI
  2. set listenadresses = '*' in postgresql.conf file
  3. put host all all 10.0.2.1/24 md5 line in the pg_hba.conf file
  4. put 5432 port inbound and outbound rule in win7 firewall settings
  5. disabled linux firewall with #service iptables stop

Just to mention. When service is started in virtual linux, I can access it from linux, so service is properly started. Problem is that windows doesn't see that service. And when service is started from linux, I can start the same service in Win and vice-versa although the port 5432 should be occupied.

The most suspicious part to me is point 3) because I'm not sure whether i have put good address in rule. That address vary from article to article, and I would appreciate if someone could explain me how to be sure which address (or range) to put there, according to my network. Or some other advice if possible. Thanks.

Upvotes: 14

Views: 24065

Answers (3)

Vishal R
Vishal R

Reputation: 1379

The Solution by Filip works, but you can tailor it further.
First, enable Adapter 2 in VM and set it to Host-only Adapter:

enter image description here

Second go to your host machine and find it's ip address.
This can be found by running ipconfig in your windows host machine.

Now you need to edit two files in your VMBox.

First is postgresql.conf

sudo nano /etc/postgresql/<version>/main/postgresql.conf

and add the following line:

listen_addresses = '*'

save it and then edit pg_hba.conf

sudo nano /etc/postgresql/<version>/main/pg_hba.conf

Here you need to add your host machine ip (in my case it was 192.168.56.1:

host    all             all             192.168.56.1/0          trust

Save it and restart postgresql

sudo /etc/init.d/postgresql restart

Now you can use pgadmin to connect to vm postgresql.

Convenience!

Upvotes: 5

Lukasz Wiktor
Lukasz Wiktor

Reputation: 20422

In my case adding the below line to pg_hba.conf was enough:

host    all    all    10.0.0.0/16    md5

and then restart:

sudo /etc/init.d/postgresql restart

Upvotes: 5

Filip
Filip

Reputation: 2344

Solved.

Replacing:

"host all all 10.0.2.1/24 md5" with "host all all 0.0.0.0/0 trust" solved it.

Upvotes: 12

Related Questions