PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

psycopg2.OperationalError:FATAL:nieobsługiwany protokół frontendu 1234.5679:serwer obsługuje 2.0 do 3.0

1234.5679 jest specjalnym kodem wysyłanym przez klienta w celu żądania połączeń z bazą danych zaszyfrowanych SSL, a obsługa tego jest dostępna w PostgreSQL od czasu zatwierdzenia e0e7daef6da w 1999 roku. Ale twój PostgreSQL nie może być tak stary, ponieważ obsługa protokołu w wersji 3.0 nie została dodana przed 2003 rokiem.

Właściwie od studiowania src/backend/postmaster/postmaster.c i czytając listę dyskusyjną, jest to błąd na serwerze PostgreSQL:

Klient musi być skonfigurowany do wypróbowania uwierzytelniania GSS, a gdy serwer odrzuci, chce negocjować połączenia SSL, ale na tym etapie serwer nie oczekuje tego; stąd błąd.

Zobacz dyskusję tutaj. Błąd został naprawiony w wersji 12.3.

Aby obejść ten problem, wyłącz uwierzytelnianie GSS lub negocjację SSL na kliencie.

W psycopg2 wyłączenie SSL odbywa się za pomocą sslmode="disable" w ciągu połączenia, a wyłączenie GSS odbywa się za pomocą gssencmode="disable" . Szczegółowe informacje można znaleźć w dokumentacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować uniksowy znacznik czasu na wartość daty/godziny w PostgreSQL?

  2. Wbudowane testy PostgreSQL dla Java JUnit

  3. Średnia ruchoma na podstawie znaczników czasu w PostgreSQL

  4. Jak pracować z PGpoint dla Geolokalizacji przy użyciu PostgreSQL?

  5. Jak datuje się matematykę, która ignoruje rok?