GNU/Linux >> Znalost Linux >  >> Linux

Jak povolit vzdálené připojení k databázi PostgreSQL pomocí psql

Při instalaci PostgreSQL není standardně připojení k databázi pomocí TCP/IP povoleno.

Když se pokusíte připojit z klienta ke vzdálené databázi PostgreSQL pomocí příkazu psql, může se zobrazit chybová zpráva „psql:nelze se připojit k serveru:Připojení odmítnuto“.

V následujícím příkladu se z klientského počítače pokoušíme připojit k databázi PostgreSQL, která běží na serveru 192.168.102.1. Jak vidíte z výstupu, jasně to říká, že vzdálená databáze PostgreSQL nepřijímá připojení.

# psql -U postgres -h 192.168.102.1
psql: could not connect to server: Connection refused
        Is the server running on host "192.168.102.1" and accepting
        TCP/IP connections on port 5432?

Chcete-li povolit připojení TCP/IP pro databázi PostgreSQL, musíte provést dva kroky uvedené níže.

1. Upravte soubor pg_hba.conf a přidejte záznam ověření klienta

Na databázovém serveru PostgreSQL si ve výchozím nastavení všimnete následujících záznamů na konci souboru /var/lib/pgsql/data/pg_hba.conf. Jak je uvedeno níže, přijímá připojení pouze z localhost.

# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               ident

Přidejte následující řádek na server pg_hba.conf. To umožní připojení z ip-adresy „192.168.101.20“ (toto je klient v našem příkladu). Pokud chcete povolit připojení z více klientských počítačů v konkrétní síti, zadejte zde síťovou adresu ve formátu CIDR-adresy.

# vi  /var/lib/pgsql/data/pg_hba.conf
host    all         all         192.168.101.20/24    trust

Následují různé formáty záznamů autentizace klienta podporované v souboru pg_hba.conf. Používáme formát č. 2 z tohoto seznamu.

  • metoda autentizace uživatele v místní databázi [autentizace-možnost]
  • uživatel hostitelské databáze CIDR-address authentication-method [authentication-option]
  • uživatel databáze hostssl CIDR-address authentication-method [authentication-option]
  • uživatel databáze hostitelnossl CIDR-address authentication-method [authentication-option]

Místo formátu „CIDR-address“ můžete také zadat IP-adresu a masku sítě v samostatných polích pomocí následujícího formátu záznamu.

  • IP-adresa hostitelské databáze IP-maska-metoda ověření [autentizace-možnost]
  • IP-adresa uživatele databáze hostssl IP-maska-metoda ověření [autentizace-možnost]
  • IP-adresa uživatele databáze hostnossl IP-maska-metoda ověření [authentication-option]

2. Změňte adresu pro poslech v postgresql.conf

Na databázovém serveru PostgreSQL bude ve výchozím nastavení naslouchací adresa v souboru postgresql.conf localhost, jak je uvedeno níže.

# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = 'localhost'

Upravte tento řádek a zadejte *. Pokud máte na serveru více rozhraní, můžete také určit konkrétní rozhraní, které má být nasloucháno.

# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

3. Otestujte vzdálené připojení

Nyní se přihlaste ke klientskému počítači 192.168.101.20 a proveďte vzdálené připojení psql k databázovému serveru PostgreSQL (192.168.102.1), jak je uvedeno níže. Tentokrát by to mělo fungovat.

# psql -U postgres -h 192.168.102.1
Welcome to psql 8.1.11 (server 8.4.18), the PostgreSQL interactive terminal.
postgres=#

Pokud také nechcete pokaždé zadávat název hostitele v parametru příkazového řádku, můžete nastavit ip-adresu vzdálené databáze PostgreSQL v názvu proměnné prostředí PGHOST, jak je uvedeno níže.

# export PGHOST=192.168.102.1
# psql -U postgres
Welcome to psql 8.1.11 (server 8.4.18), the PostgreSQL interactive terminal.
postgres=#

Linux
  1. Jak se přihlásit do databáze Postgresql z příkazového řádku

  2. Jak zálohovat a obnovovat databázi v PostgreSQL

  3. Jak povolit vzdálené připojení k databázovému serveru MySQL

  1. Jak vytvořit databázi v PostgreSQL

  2. Jak prohledávat databázi pomocí phpMyAdmin

  3. Jak přidat vzdálené připojení MySQL v linuxu?

  1. Jak nainstalovat PostgreSQL na Ubuntu 20.04

  2. Jak nainstalovat PostgreSQL na Debian 10

  3. Jak spravovat vzdáleného hostitele Windows pomocí Ansible