简体   繁体   中英

Setting up a Remotely Accessible Postgres Database with Linux and PGAdmin

I'm trying to set up a remotely accessible Postgres database . I want to host this databse on one Linux based device (HOST), and to access it on another Linux based device (CLIENT).

In my specific case, HOST is a desktop device running Ubuntu. CLIENT is a Chromebook with a Linux virtual system. (I know. But it's the closest thing to a Linux based device that I have to hand.

Steps Already Taken to Set Up the Database

  1. Installed the required software on HOST using APT.
PGP_KEY_URL="https://www.postgresql.org/media/keys/ACCC4CF8.asc"
POSTGRES_URL_STEM="http://apt.postgresql.org/pub/repos/apt/"
POSTGRES_URL="$POSTGRES_URL_STEM `lsb_release -cs`-pgdg main"
POSTGRES_VERSION="12"
PGADMIN_URL_SHORT="https://www.pgadmin.org/static/packages_pgadmin_org.pub"
PGADMIN_URL_STEM="https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt"
PGADMIN_TO_ECHO="deb $PGADMIN_URL_STEM/`lsb_release -cs` pgadmin4 main"
PGADMIN_PATH="/etc/apt/sources.list.d/pgadmin4.list"

sudo apt install curl --yes
sudo apt install gnupg2 --yes
wget --quiet -O - $PGP_KEY_URL | sudo apt-key add -

echo "deb $POSTGRES_URL" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt install postgresql-$POSTGRES_VERSION --yes
sudo apt install postgresql-client-$POSTGRES_VERSION --yes

sudo curl $PGADMIN_URL_SHORT | sudo apt-key add
sudo sh -c "echo \"$PGADMIN_TO_ECHO\" > $PGADMIN_PATH && apt update"
sudo apt update
sudo apt install pgadmin4 --yes
  1. Create a new Postgres user.
NU_USERNAME="my_user"
NU_PASSWORD="guest"
NU_QUERY="CREATE USER $NU_USERNAME WITH superuser password '$NU_PASSWORD';"

sudo -u postgres psql -c "$NU_QUERY"
  1. Created the new server and database. I did this manually, using the PGAdmin GUI.
  2. Added test data, a table with a couple of records. I did this with a script.
  3. Followed the steps given in this answer to make the databse remotely accessible.

Steps Already Taken to Connect to the Database REMOTELY

  1. Installed PGAdmin on CLIENT.
  2. Attempted to connect using PGAdmin. I used the "New Server" wizard, and entered:

Host IP Address: 192.168.1.255
Port: 5432 (same as when I set up the database on HOST)
User: my_user
Password: guest

However, when I try to save the connection, PGAdmin responds after a few seconds saying that the connection has timed out .

You have to configure listen_addresses in /var/lib/pgsql/data/postgresql.conf like this:

listen_addresses = '*'

Next make sure your firewall doesn't block the connection by checking if telnet can connect to your server:

$ telnet 192.168.1.255 5432
Connected to 192.168.1.255.
Escape character is '^]'.

If you see Connected network connectivity is ok. Next you have to configure access rights for remote hosts.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM