I have a local postgreSQL database installed on my linux computer. I would like run this database on a NAS Synology DiskStation (DS216j) instead.

I followed this guideline until step 2: http://iamsensoria.com/post/130235198606/postgres-on-synology (I am able to create the database and the user) But i am not able to do the step3.

I am trying to connect to the database with pgAdminIII but i get an error saying:

"he server doesn't accept connections: the connection library reports could not connect to server: Oppkobling nektes Is the server running on host "192.168.0.16" and accepting TCP/IP connections on port 5432? If you encounter this message, please check if the server you're trying to contact is actually running PostgreSQL on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network / VPN / SSH tunnel / firewall configured correctly? For security reasons, PostgreSQL does not listen on all available IP addresses on the server machine initially. In order to access the server over the network, you need to enable listening on the address first. For PostgreSQL servers starting with version 8.0, this is controlled using the "listen_addresses" parameter in the postgresql.conf file. Here, you can enter a list of IP addresses the server should listen on, or simply use '*' to listen on all available IP addresses. For earlier servers (Version 7.3 or 7.4), you'll need to set the "tcpip_socket" parameter to 'true'. You can use the postgresql.conf editor that is built into pgAdmin III to edit the postgresql.conf configuration file. After changing this file, you need to restart the server process to make the setting effective. If you double-checked your configuration but still get this error message, it's still unlikely that you encounter a fatal PostgreSQL misbehaviour. You probably have some low level network connectivity problems (e.g. firewall configuration). Please check this thoroughly before reporting a bug to the PostgreSQL community"

ps: I have opened the port 5432 on the sinology DS-216J.

Does anybody have gone through this before? Thanks in advance.

I also use this resources:

https://askubuntu.com/questions/423165/remotely-access-postgresql-database

------UPDATE 1----

ssh testuser@192.168.0.16
testuser@test:~$ sudo -s
sh-4.3# su - postgres
postgres@test:~$ psql
psql (9.3.14)
 Type "help" for help.
postgres=#  \l

---------------------------------

 download         | DownloadStation 
 mediaserver    | MediaIndex      
 mydb               | postgres       
 photo               | PhotoStation    
 postgres          | postgres       
 template0        | postgres        | SQL_ASCII | C       | C     | =c/postgres   
                                                   postgres=CTc/postgres
 template1      | postgres        | SQL_ASCII | C       | C     | =c/postgres   
                postgres=CTc/postgres
 usermydb       | postgres        | SQL_ASCII | C       | C     | 
 video_metadata | VideoStation    | SQL_ASCII | C       | C     | 

------------------------------------------------------------
postgres=# \c mydb
You are now connected to database "mydb" as user "postgres".
mydb=# SHOW hba_file;
          hba_file           
-----------------------------
 /etc/postgresql/pg_hba.conf
(1 row)

    mydb=# sudo vim /etc/postgresql/pg_hba.conf   // NOT WORKING
    mydb=# sudo vim /etc/postgresql/9.1/main/pg_hba.conf // NOT WORKING
  • Sounds like you may need to configure your hba.conf to allow connections in – ryekayo Jul 11 '17 at 13:19
  • How can I check if the NAS (where i have previously started the db) is actually running PostgreSQL on the given port? – bostongeorge Jul 11 '17 at 13:41
  • Use netstat: netstat -tulnp | grep 5432 – ryekayo Jul 11 '17 at 13:43
  • I have logged in first with SSH from my pc to the NAS with an active user and I get --------------------------------:testuser@test:~$ netstat -tulnp | grep 5432 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN – bostongeorge Jul 11 '17 at 13:49
  • Thats your problem! netstat shows that the PID is listening to your loopback address. Which is why you need to modify your hba conf to have the PID listen to not just listen to your loopback address. – ryekayo Jul 11 '17 at 13:50
up vote 0 down vote accepted

The problem is Postgres is binding to your loopback address (127.0.0.1). This typically means that your database will not accept connections outside your loopback. It is evident based on your results running netstat.

The Solution:

You need to modify your pg_hba.conf file to allow outside connections (preferrably, your PC's IP address). Take a look at the following. I'm not 100% what version of Postgres your using but I can't imagine each version having vast differences between configuring your pg_hba.conf.

  • Ok so, to be able to modify this pg_hba.conf I will have to connect with telnet. After I modify the file my DB on the NAS can accept outside connection and eventually I will also be able to establish connection from gAdminIII. Is this correct? – bostongeorge Jul 11 '17 at 14:51
  • Not quite. Your using telnet to test your connectivity from points A -> B. Once you modify the hba.conf and restart the daemon, you can use telnet to confirm you are able connect remotely. After which, you should be able to connect via pgAdmin – ryekayo Jul 11 '17 at 15:15
  • ok. I am understanding much more now. This is my first approach to linux. I am trying to migrate a local database which I made using pgAdminIII & LibreofficeBase to a NAS synology. If my pc has ip 192.168.0.11 and my NAS has 192.168.0.16 can I check the port using the command telnet 192.168.0.16 5432 ? Because i tried that (also as a root), but i just get connection refused. – bostongeorge Jul 11 '17 at 16:09
  • Yes that will work normally, but as i mentioned you need to change your configuration on the server side. The connection refused means postgres isnt accepting connections outside your localhost – ryekayo Jul 11 '17 at 16:10
  • When you say server side it means form the control panel of the Synology DiskStation (DS216j) ? – bostongeorge Jul 11 '17 at 16:12

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.