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.