अब, db_link()
उपयोगकर्ता पोस्टग्रेज के रूप में बैकएंड सर्वर प्रक्रिया पर चल रहा होगा।
क्या आपका .pgpass
है डेटाबेस मशीन पर उपयोगकर्ता पोस्टग्रेज करने के लिए सही जगह पर फ़ाइल?
यदि नहीं, तो आप इसे पढ़ने की अपेक्षा कैसे करते हैं?
मुझे लगता है कि आप कुछ चूक गए होंगे:
# ls -l /var/lib/postgresql/.pgpass
-rw------- 1 root root 79 Jun 24 08:10 /var/lib/postgresql/.pgpass
(meanwhile, in psql...)
dblinklocal=# SELECT dblink_connect('conn1', 'hostaddr=127.0.0.1 port=5432 dbname=dblinkremote user=testuser');
ERROR: could not establish connection
DETAIL: fe_sendauth: no password supplied
# chown postgres:postgres .pgpass
dblinklocal=# SELECT dblink_connect('conn1', 'hostaddr=127.0.0.1 port=5432 dbname=dblinkremote user=testuser');
dblink_connect
----------------
OK
(1 row)