sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres SSL SYSCALL-fel:EOF upptäckt med python och psycopg

Felet:psycopg2.operationalerror: SSL SYSCALL error: EOF detected

Inställningen:Luftflöde + Rödskiftning + psycopg2

När:Förfrågningar tar lång tid att köra (mer än 300 sekunder).

En socket timeout inträffar i detta fall. Det som löser denna specifika variant av felet är att lägga till keepalive-argument till anslutningssträngen.

keepalive_kwargs = {
    "keepalives": 1,
    "keepalives_idle": 30,
    "keepalives_interval": 5,
    "keepalives_count": 5,
}

conection = psycopg2.connect(connection_string, **keepalive_kwargs)

Redshift kräver en keepalives_idle på mindre än 300. Ett värde på 30 fungerade för mig, din körsträcka kan variera. Det är också möjligt att keepalives_idle argument är det enda du behöver ställa in - men se till att keepalives fungerar är inställd på 1.

Länk till dokument på postgres keepalives.

Länk till luftflödesdokument som ger råd om 300 timeout.



  1. Får fel vid mappning av PostgreSQL LTREE-kolumnen i viloläge

  2. Steg för att installera MySQL8 på CentOS

  3. Använda ett if-villkor i en insatt SQL Server

  4. Uppdateringar från Microsoft Access-teamet (juni 2017)