Dela via


Tillfälliga anslutningsfel uppstår när du använder SQLCMD-verktyget

Den här artikeln hjälper dig att lösa tillfälliga problem med "OS-fel 10054" som uppstår när du använder kommandoradsverktyget FÖR SQLCMD.

Fel

Du får följande varning och felmeddelanden:

VARNING: proc_procname returnerade HResult-0x2746, nivå 16, tillstånd 1

TCP-provider: En befintlig anslutning stängdes av fjärrvärden.

SQLCMD.EXE: Sqlcmd: Fel: Microsoft SQL Server Native Client 10.0 : Klienten kunde inte upprätta en anslutning

En möjlig orsak till dessa fel är en drivrutin som inte stöds.

Frågor att tänka på

Granska följande scenarier för att avgöra om något matchar problemet:

  • Du samlar in en nätverksspårning och lär dig att TLS 1.0 och 1.1 är inaktiverade och att TLS 1.2 är aktiverat. På den server som kör SQL Server aktiveras TLS 1.0, 1.1 och 1.2 på programservern.

    Skärmbild som visar att TLS 1.0, 1.1 och 1.2 är aktiverade på programservern.

  • Du kör ett UDL-test på programservern med både Microsoft OLE DB-providern för SQL Server och SNAC 11-providern. Anslutningen misslyckas. Du får också ett meddelande om att drivrutinen "Microsoft OLE DB Provider for SQL Server" är inaktuell och inte stöder TLS 1.2.

  • Programservern använder SQL Server Native Client 11 för att testa ODBC-datakällan. Om SQL Server Native Client 10.0 inte stöds kan följande felmeddelande visas:

    Anslutningen misslyckades med SQL-tillståndet: 08001 SQL Server Fel: 10054 [Microsoft][SQL Server Native Client 10.0]TCP-provider: En befintlig anslutning stängdes med två tvångsinloggning av fjärrvärden. [Microsoft] [SQL Server Native Client 10.0] Klienten kan inte upprätta en anslutning.

    Det här meddelandet kan visas eftersom programservern använder den äldre versionen av Diffie-Hellman-algoritmen (v1) och SQL Server använder den nyare versionen (v2). Det här matchningsfelet orsakar tillfälliga TLS-fel.

Åtgärd

Följ dessa steg för att lösa dessa problem:

  1. Ange SQL Server Native Client 11 i anslutningssträng.

    Obs!

    Microsoft stöder inte längre SNAC 11. Om du får problem när du använder SNAC 11 måste du uppgradera till en version av Microsoft-drivrutinen som stöds innan teknisk support kan tillhandahållas.

  2. Uppgradera programdrivrutinen till en drivrutin som stöds.

  3. Använd MSOLEDBSQL v18 eller ODBC v17 om du inte använder kryptering för anslutningen. Om du använder kryptering för anslutningen på programservern använder du MSOLEDBSQL v19 eller ODBC v18. Som standard ingår dessa drivrutiner tillsammans med krypteringen. Mer information finns i följande artiklar:

Se även

En befintlig anslutning stängdes av av fjärrvärden (OS-fel 10054)