Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 656
Filip Avatar asked Aug 08 '13 08:08

Filip


People also ask

How do I connect to a PostgreSQL database from a virtual machine?

Install PostgreSQL client toolsCreate an SSH connection with the VM using Bash or PowerShell. At your prompt, open an SSH connection to your virtual machine. Replace the IP address with the one from your VM, and replace the path to the . pem with the path to where the key file was downloaded.

How connect PostgreSQL database in Linux?

You can also connect to PostgreSQL database using pgAdmin GUI application. Connect to the database at localhost:5432 using the user name postgres and the password supplied. Now, double click on PostgreSQL 9.4 under the "Servers Groups". pgAdmin will ask you for a password.

How do I connect to PostgreSQL database using SSH?

Type "localhost" in the "Host name/address". Enter your PostgreSQL username and password provided by Hanlon Lab and save your password if you would like. Switch on the "Use SSH tunneling" tab. Enter the hostname provided by the lab in "Tunnel host." Enter your Linux username provided by Hanlon Lab.


1 Answers

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!

like image 173
Vishal R Avatar answered Oct 01 '22 13:10

Vishal R