Sto configurando un'applicazione Rails su una nuova installazione di Ubuntu e creato i database Postgres usando rake db: create: all. In databases.yml, il campo password per tutti i database è vuoto. Sto provando a fare un pg_restore di un dump che ho catturato dalla distribuzione di produzione dell'app, ma continuo a ricevere una password. Ho la sensazione che questo sia qualcosa a che fare con le impostazioni nel file pg_hba.conf, ma non riesco a ricordare come li avevo impostati nella mia precedente installazione di Ubuntu. In che modo Postgres si fida di pg_restore per le connessioni locali? O c'è qualcosa di diverso che causa questo problema?pg_restore chiede la password per il database quando non ce n'è uno
risposta
Set trust
(o peer
se si desidera far corrispondere i nomi utente PostgreSQL a Unix nomi utente) per local
collegamenti in pg_hba.conf
. Hai praticamente risposto alla tua domanda.
Se stai specificando esplicitamente -h localhost
allora si sta utilizzando il protocollo TCP/IP, è necessario omettere -h localhost
, utilizzare -h /tmp
o dovunque il tuo unix_socket_directory
è configurato per vivere, o impostare trust
per host
connessioni da 127.0.0.1/32
in pg_hba.conf
pure.
Vedere pg_hba.conf
e client authentication.
Una soluzione alternativa potrebbe essere quella di memorizzare le credenziali di accesso sulla macchina client in un file .pgpass nella home directory degli utenti:
localhost: *: database: username: password
Le autorizzazioni per questo il file deve essere almeno 0600 o verrà ignorato.
http://www.postgresql.org/docs/9.2/interactive/libpq-pgpass.html
Grazie, questo ha risolto il mio problema –
Non dimenticate di riavviare il servizio Postgre dopo questo. – bdavidxyz