Domanda

ho installato PostgreSQL sul mio server locale (Ubuntu) con 192.168.1.10 IP. Ora, io sto cercando di accedere al database dalla mia macchina client (Ubuntu) con 192.168.1.11 IP con pgAdmin.

So che devo fare cambiamenti nella postgresql.conf e pg_hba.conf per consentire al client di connettersi. La prego mi guida?

È stato utile?

Soluzione

Si tratta di una procedura in 3 fasi per la connessione a un server remoto attraverso PostgreSQL pgAdmin3.

  

Nota: io uso Ubuntu 11.04 e PostgreSQL 8.4.

  1. Devi fare PostgreSQL ascolto per le connessioni TCP in ingresso a distanza, perché le impostazioni predefinite consentono di ascoltare solo per le connessioni su l'interfaccia di loopback. Per essere in grado di raggiungere il server remoto è necessario aggiungere la seguente riga nel file /etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = '*'

  2. PostgreSQL per default rifiuta tutte le connessioni che riceve da qualsiasi indirizzo remoto, dovete rilassarvi queste regole con l'aggiunta di questa linea di /etc/postgresql/8.4/main/pg_hba.conf:

    ospite tutti tutti 0.0.0.0/0 md5

    Questa è una regola di controllo di accesso che lasciate che nessuno accedi al sito da qualsiasi indirizzo se può fornire una password valida (la parola MD5). È possibile utilizzare necessaria rete / maschera invece di 0.0.0.0/0.

  3. Dopo aver applicato queste modifiche ai file di configurazione che è necessario riavviare il server PostgreSQL. Ora è possibile accedere al server remoto, utilizzando il nome utente e la password.

Altri suggerimenti

Se si utilizza PostgreSQL 8 o superiore, potrebbe essere necessario modificare l'impostazione in listen_addresses il /etc/postgresql/8.4/main/postgresql.conf.

Prova ad aggiungere la riga:

listen_addresses = *

che vi dirà PostgreSQL per ascoltare le connessioni su tutte le interfacce di rete.

Se non è impostata in modo esplicito, questa impostazione di default per localhost che significa che accetterà solo le connessioni dalla stessa macchina.

Non ho dovuto cambiare il mio file prostgresql.conf ma, ho dovuto effettuare le seguenti operazioni in base alla mia psql tramite linea di comando stava collegando e pgAdmin non la connessione sul sistema RDS con AWS.

ho avuto i miei RDS impostato accessibili al pubblico. Ho fatto in modo mio ACL e gruppi di protezione erano spalancati e ancora problema in modo, ho fatto la seguente: sudo find . -name *.conf poi sudo nano ./data/pg_hba.conf poi aggiunto alla cima delle direttive nel file di host all all 0.0.0.0/0 md5 pg_hba.conf e pgAdmin collegato automaticamente.

Questo ha anche lavorato nel file di pg_hba.conf host all all md5 senza alcun indirizzo IP, e questo anche lavorato con il mio indirizzo IP host all all <myip>/32 md5

Come nota a margine, i miei RDS era nel mio difetto VPC. Ho avuto un caso identico RDS nel mio non predefinita VPC con gruppo di protezione identico, ACL e impostazioni del gruppo di sicurezza al mio VPC impostazione predefinita e non ho potuto farlo funzionare. Non so perché, ma, questo è un altro giorno.

Nel terminale Linux provate questo:

  • sudo service postgresql start: per avviare il server
  • sudo service postgresql stop: per fermare te server
  • sudo service postgresql status: per controllare lo stato del server

Per RedHat Linux

sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9 è la cartella per la versione installata Postgres, potrebbe essere diverso per gli altri

cambiato listen_addresses = '*' a partire dal listen_addresses = ‘localhost’ e poi

sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start

Controlla il tuo firewall. Quando si disattiva, allora è possibile collegare. Se si vuole / non si può disabilitare il firewall, aggiungere una regola per la connessione remota.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top