PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

psycopg2.OperationalError:FATAL:protocollo frontend non supportato 1234.5679:il server supporta da 2.0 a 3.0

1234.5679 è il codice speciale inviato dal client per richiedere connessioni al database crittografate con SSL e il supporto per questo è stato in PostgreSQL sin dal commit e0e7daef6da nel 1999. Ma il tuo PostgreSQL non può essere così vecchio, perché il supporto per la versione del protocollo 3.0 non è stato aggiunto prima del 2003.

In realtà, dallo studio di src/backend/postmaster/postmaster.c e leggendo la mailing list, questo è un bug sul server PostgreSQL:

Il client deve essere configurato per provare l'autenticazione GSS e, quando il server rifiuta, vuole negoziare una connessione SSL, ma il server non se lo aspetta a questo punto; da qui l'errore.

Vedi la discussione qui. Il bug è stato corretto con la versione 12.3.

Come soluzione alternativa, disabilitare l'autenticazione GSS o la negoziazione SSL sul client.

In psycopg2, la disabilitazione di SSL viene eseguita utilizzando sslmode="disable" nella stringa di connessione e la disabilitazione di GSS viene eseguita con gssencmode="disable" . Consulta la documentazione per i dettagli.