PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

psycopg2.OperationalError:FATAL:protokol frontend tidak didukung 1234.5679:server mendukung 2.0 hingga 3.0

1234.5679 adalah kode khusus yang dikirim oleh klien untuk meminta koneksi database terenkripsi SSL, dan dukungan untuk itu telah ada di PostgreSQL sejak komit e0e7daef6da pada tahun 1999. Tetapi PostgreSQL Anda tidak boleh setua itu, karena dukungan untuk protokol versi 3.0 tidak ditambahkan sebelum tahun 2003.

Sebenarnya, dari mempelajari src/backend/postmaster/postmaster.c dan membaca milis, ini adalah bug di server PostgreSQL:

Klien harus dikonfigurasi untuk mencoba autentikasi GSS, dan ketika server menolak, klien ingin menegosiasikan koneksi SSL, tetapi server tidak mengharapkan itu pada saat ini; maka kesalahannya.

Lihat pembahasannya di sini. Bug telah diperbaiki dengan rilis 12.3.

Sebagai solusinya, nonaktifkan autentikasi GSS atau negosiasi SSL di klien.

Di psycopg2, menonaktifkan SSL dilakukan dengan menggunakan sslmode="disable" di string koneksi, dan menonaktifkan GSS dilakukan dengan gssencmode="disable" . Lihat dokumentasi untuk detailnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa iterasi melalui Django QuerySet besar menghabiskan banyak memori?

  2. cara menggunakan tipe data Blob di Postgres

  3. Kapan memilih untuk memperbarui mengunci dan membuka kunci?

  4. Postgresql menerapkan kombinasi kolom dua arah yang unik

  5. Django bulk_create dengan mengabaikan baris yang menyebabkan IntegrityError?