Anda mencoba terhubung ke PostgreSQL di localhost menggunakan skrip yang berjalan di komputer Anda, tetapi tidak ada server PostgreSQL yang berjalan di sana.
Agar ini berfungsi, Anda harus ssh ke server jarak jauh, lalu jalankan skrip Python Anda di sana, di mana server PostgreSQL "lokal" relatif terhadap skrip Python.
(Itulah mengapa menjalankan psql berfungsi - karena Anda menjalankannya di server jauh , di mana PostgreSQL adalah "lokal" relatif terhadap psql ).
Sebagai alternatif, Anda dapat:
-
Gunakan terowongan SSH untuk meneruskan port PostgreSQL dari komputer lokal ke komputer jarak jauh; atau
-
Hubungkan langsung melalui TCP/IP ke server PostgreSQL jarak jauh menggunakan nama host atau alamat IP-nya, setelah mengaktifkan koneksi jarak jauh di server.
Perhatikan bahwa hanya memasukkan alamat IP server atau nama host ke dalam string koneksi alih-alih localhost tidak akan berfungsi kecuali Anda juga mengonfigurasi server untuk menerima koneksi jarak jauh . Anda harus mengatur listen_addresses untuk mendengarkan koneksi non-lokal, tambahkan aturan firewall yang diperlukan, setel pg_hba.conf untuk mengizinkan koneksi dari mesin jarak jauh, dan sebaiknya mengatur SSL. Semua ini tercakup dalam bab Otentikasi Klien dari manual pengguna PostgreSQL.
Anda mungkin akan menemukan terowongan SSH lebih sederhana dan lebih mudah dipahami.