2013-09-02 53 views
22

Ho PostgreSQL 9.2 Installato in Windows 7 e Windows XP installato in Virtual Machine, come posso collegare questi due database e consentire l'accesso remoto per aggiungere/modificare il database da entrambi i sistemi?Come consentire l'accesso remoto al database PostgreSQL

+0

Grazie, ma sto usando Microsoft Virtual PC, come faccio a sapere quale indirizzo IP aggiungere? – Ali4356

risposta

48

Al fine di accedere in remoto un database PostgreSQL, è necessario impostare le due principali file di configurazione di PostgreSQL:

postgresql.conf
pg_hba.conf

Ecco una breve descrizione di come è possibile impostare (si noti che la seguente descrizione è puramente indicativa: per configurare una macchina in modo sicuro, è necessario avere familiarità con tutti i parametri e il loro significato)

Prima di tutto configurare il servizio PostgreSQL per l'ascolto sulla porta 5432 su tutte le interfacce di rete in Windows 7 Machin e:
aprire il file postgresql.conf (di solito si trova in C: \ Program Files \ PostgreSQL \ 9.2 \ data) e imposta il parametro

listen_addresses = '*' 

Controllare l'indirizzo di rete di Windows XP macchina virtuale, e imposta i parametri in pg_hba File .conf (che si trova nella stessa directory di postgresql.conf) in modo che postgresql possa accettare connessioni da host di macchine virtuali.
Per esempio, se la macchina con Windows XP hanno 192.168.56.2 indirizzo IP, aggiungere nel file pg_hba.conf:

host all all 192.168.56.1/24 md5 

questo modo, PostgreSQL accetterà connessioni da tutti gli host della rete 192.168.1.XXX.

Riavviare il servizio PostgreSQL in Windows 7 (Servizi-> PosgreSQL 9.2: fare clic con il pulsante destro del mouse e riavviare sevice). Installa pgAdmin su Windows XP e prova a connetterti a PostgreSQL.

+0

Grazie mille, sfortunatamente non ha funzionato, tutte le modifiche che ho fatto sono state da Windows 7 e quando ho riavviato il servizio PostgreSQL non si riavvierà fino a quando non rimuoverò l'indirizzo IP della macchina virtuale da pg_hba.conf, Aggiungo qualcosa nei file delle macchine virtuali? – Ali4356

+1

Hai controllato il firewall di Windows 7? È possibile eseguire il ping di Windows 7 da Windows XP? Puoi anche provare con il comando 'netstat -a -n' per verificare se postgresql è in ascolto sugli indirizzi – AndreaBoc

+0

Nvm tizio, ha funzionato, era un problema con l'indirizzo IP, ora funziona come un fascino :) – Ali4356

2

Devi aggiungere questo al tuo pg_hba.conf e riavviare PostgreSQL.

ospite tutti tutti 192.168.56.1/24 md5

Questo funziona con VirtualBox e l'adattatore solo host abilitato. Se non si utilizza Virtualbox, è necessario sostituire l'indirizzo IP.

+0

Grazie, ma sto usando Microsoft Virtual PC, come faccio a sapere quale indirizzo IP aggiungere? – Ali4356

5

Se si utilizza PostgreSql 9.5.1, si prega di seguire la configurazione di seguito:

  1. aperto hg_hba.conf in pgAdmin pgAdmin
  2. Selezionare il percorso, e aprirlo, quindi aggiungere un impostazione pg_hba.conf
  3. Riavvia servizio postgresql
+0

quindi il tuo indirizzo IP di rete è 0.0.0.0/0? o è solo accettare tutto l'indirizzo IP? – ziggy

+1

@ziggy: tutti gli indirizzi IP. Per consentire a X.X.X.X di utilizzare 0.0.0.0/0. Per consentire a 192.X.X.X di utilizzare 192.0.0.0/8. Per consentire a 192.168.X.X di utilizzare 192.168.0.0/8. Per consentire 192.168.1.X utilizzare 192.0.0.0/16. Per consentire 192.168.1.X utilizzare 192.168.1.0/24. Per consentire solo 192.168.1.2 utilizzare 192.168.1.2/32 – JCasso

1

In aggiunta alle risposte precedenti che suggeriscono la modifica della configurazione i file di uration pg_hba.conf e postgresql.conf e il riavvio del servizio PostGreSQL, su alcuni computer Windows 7 potrebbe anche essere necessario abilitare la porta (ad es. 5432) per il traffico TCP in entrata che il server PostGreSQL può ricevere.

Se è necessario sul computer, aprire Windows Firewall e aggiungere una regola di ingresso per la porta (ad esempio 5432). Ora prova a connetterti di nuovo da pgAdmin sul computer client.

1

Dopo set listen_addresses = '*' in postgresql.conf

Modificare il hba_file.conf file di e aggiungere la seguente voce alla fine del file:

host all    all    0.0.0.0/0      md5 
host all    all    ::/0       md5 

Per trovare il config filethis link potrebbe aiutarti.

Problemi correlati