Share via


Ett nätverksrelaterat eller instansspecifikt fel inträffade när du skapar en anslutning till SQL Server

Gäller för: SQL Server

När du ansluter till en SQL Server instans kan du stöta på ett eller flera av följande felmeddelanden. Den här artikeln innehåller några steg som hjälper dig att felsöka dessa fel, som tillhandahålls i ordning efter problem från enkla till komplexa.

Felmeddelanden

De fullständiga felmeddelandena varierar beroende på klientbiblioteket som används i programmet och servermiljön. Du kan kontrollera följande information för att se om du stöter på något av följande felmeddelanden:

provider: Provider med namnet Pipes, fel: 40 – Det gick inte att öppna en anslutning till SQL Server (Microsoft SQL Server, Fel: 53) Ett nätverksrelaterat eller instansspecifikt fel inträffade när du skapar en anslutning till SQL Server. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server har konfigurerats för att tillåta fjärranslutningar.
provider: Namngivna pipes-provider, fel: 40 – Det gick inte att öppna en anslutning till SQL Server (Microsoft SQL Server, Fel: 53)
provider: TCP-provider, fel: 0 – Ingen sådan värd är känd. (Microsoft SQL Server, fel: 11001)

provider: SQL-nätverksgränssnitt, fel: 26 – Fel vid lokalisering av server/angiven instans Ett nätverksrelaterat eller instansspecifikt fel inträffade när du skapar en anslutning till SQL Server. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server har konfigurerats för att tillåta fjärranslutningar.
provider: SQL-nätverksgränssnitt, fel: 26 – Fel vid lokalisering av angiven server/instans

Tidsgränsen för inloggning har upphört att gälla Datalänksfel för inbyggd klient för SQL Server
[Microsoft SQL Server Native Client 10.0]: Tidsgränsen för inloggning upphörde att gälla
[Microsoft SQL Server Native Client 10.0]: Ett nätverksrelaterat eller instansspecifikt fel har uppstått när en anslutning till SQL Server upprättades. Servern hittades inte eller är inte tillgänglig. Kontrollera om instansnamnet är korrekt och om SQL Server har konfigurerats för att tillåta fjärranslutningar. Mer information om installation finns i SQL Server-böckerna online.
[Microsoft SQL Server Native Client 10.0]: SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

Ett anslutningsförsök misslyckades eftersom den anslutna parten inte svarade korrekt efter en viss tidsperiod, eller så misslyckades den upprättade anslutningen eftersom den anslutna värden inte svarade Ett nätverksrelaterat eller instansspecifikt fel inträffade när du skapar en anslutning till SQL Server. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server har konfigurerats för att tillåta fjärranslutningar.
provider: TCP-provider, fel: 0
Ett anslutningsförsök misslyckades eftersom den anslutna parten inte svarade korrekt efter en viss tidsperiod, eller så misslyckades den upprättade anslutningen eftersom den anslutna värden inte svarade.
Microsoft SQL Server, fel: 10060

provider: Provider med namnet Pipes, fel: 40 – Det gick inte att öppna en anslutning till SQL Server Ett nätverksrelaterat eller instansspecifikt fel inträffade när du skapar en anslutning till SQL Server. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server har konfigurerats för att tillåta fjärranslutningar.
provider: Namngiva pipes-provider, fel: 40 – Det gick inte att öppna en anslutning till SQL Server
Microsoft SQL Server, fel: 53
Nätverkssökvägen hittades inte

[Microsoft] [SQL Server Native Client 11.0]TCP-provider: Det gick inte att upprätta någon anslutning eftersom måldatorn aktivt nekade den Datalänksfel för inbyggd klient för SQL Server
[Microsoft] [SQL Server Native Client 11.0]TCP-provider: Det gick inte att upprätta någon anslutning eftersom måldatorn aktivt nekade den.
[Microsoft] [SQL Server Native Client 11.0]Tidsgränsen för inloggning upphörde att gälla.
[Microsoft][SQL Server Native Client 11.0]Ett nätverksrelaterat eller instansspecifikt fel inträffade när du upprättar en anslutning till SQL Server Servern hittades inte eller är inte tillgänglig. Kontrollera om instansnamnet är korrekt och om SQL Server har konfigurerats för att tillåta fjärranslutningar. Mer information om installation finns i SQL Server-böckerna online.

“SQL Server finns inte eller åtkomst nekas”

Det här felet innebär vanligtvis att klienten inte kan hitta SQL Server-instansen. Det här problemet uppstår när minst ett av följande problem finns:

  • Namnet på den dator som är värd för SQL Server är felaktigt.
  • Instansen löser inte rätt IP-adress.
  • TCP-portnumret har inte angetts korrekt.

Obs!

Felsökning av anslutningsproblem i scenarier med hög tillgänglighet finns i följande artiklar:

Windows-fel 233: Ingen process sker i andra änden av röret

Det fullständiga meddelandet är:

En anslutning upprättades med servern, men sedan uppstod ett fel under inloggningsprocessen. (provider: Provider för delat minne, fel: 0 – Ingen process finns i den andra änden av röret.) (Microsoft SQL Server, Fel: 233)

Det här meddelandet innebär att SQL Server inte lyssnar på protokollet Delat minne eller Namngivna pipes.

Samla in information för att felsöka felet

Vi rekommenderar att du samlar in informationen i det här avsnittet med något av följande alternativ innan du fortsätter med de faktiska stegen för att felsöka felet.

Alternativ 1: Använd SQL-kontrollverktyget för att samla in nödvändig information

Om du kan logga in lokalt på SQL Server dator och ha administratörsåtkomst använder du SQLCHECK. Det här verktyget har det mesta av den information som krävs för felsökning i en fil. Mer information om hur du använder verktyget och den information som samlas in finns på verktygets startsida. Du kan också kontrollera de rekommenderade förutsättningarna och checklistsidan.

Alternativ 2: Samla in data individuellt med hjälp av följande procedurer

Hämta instansnamnet från konfigurationshanteraren

På den server som är värd för SQL Server-instansen använder du Konfigurationshanteraren för SQL Server för att verifiera instansnamnet:

Obs!

Konfigurationshanteraren installeras automatiskt på datorn när SQL Server installeras. Instruktionerna för att starta konfigurationshanteraren varierar något beroende på versioner av SQL Server och Windows. Mer information om versioner finns i Konfigurationshanteraren för SQL Server.

  1. Logga in på den dator som är värd för instansen av SQL Server.

  2. Starta Konfigurationshanteraren för SQL Server.

  3. Välj SQL Server-tjänster i det vänstra fönstret.

  4. Kontrollera namnet på instansen av databasmotorn i den högra rutan.

    • SQL SERVER (MSSQLSERVER) anger en standardinstans av SQL Server. Namnet på standardinstansen är <datornamnet>.
    • SQL SERVER (<instansnamn>) anger en namngiven instans av SQL Server. Namnet på den namngivna instansen är <datornamn>\<instansnamn>.

Hämta IP-adressen för servern

Du kan använda följande steg för att hämta IP-adressen för den dator som är värd för instansen av SQL Server.

  1. Start-menyn väljer du Kör. Skriv cmd i rutan Kör och klicka sedan på OK.

  2. Återgå till Kommandotolken, skriv ipconfig/all och tryck sedan på Retur. Anteckna IPv4-adressen och IPv6-adressen.

    Obs!

    SQL Server kan ansluta med IP-protokoll version 4 eller version 6. Nätverket kan tillåta antingen ett eller båda.

Hämta TCP-porten för instansen

I de flesta fall ansluter du till databasmotorn på en annan dator med hjälp av TCP-protokollet. Följ dessa steg för att hitta TCP-porten för instansen:

  1. Använd SQL Server Management Studio på datorn som kör SQL Server och anslut till instansen av SQL Server. I Object Explorer expanderar du Hantering, expanderar SQL Server-loggar och dubbelklickar sedan på den aktuella loggen.

  2. I loggfilens visningsprogram väljer du Filtrera i verktygsfältet. I textrutan Meddelande innehåller skriver du servern lyssnar på, väljer Använd filter och väljer sedan OK.

  3. Ett meddelande som "Servern lyssnar på [ 'any' <ipv4> 1433]" bör visas.

    Det här meddelandet anger att instansen av SQL Server lyssnar på alla IP-adresser på den här datorn (för IP-version 4) och TCP-port 1433. (TCP-port 1433 är vanligtvis den port som används av databasmotorn eller standardinstansen av SQL Server. Endast en instans av SQL Server kan använda den här porten. Om fler än en instans av SQL Server är installerad måste vissa instanser använda andra portnummer.) Anteckna portnumret som används av den SQL Server instans som du försöker ansluta till.

    Obs!

    • IP-adress 127.0.0.1 visas förmodligen. Den kallas adressen för loopback-kort. Endast processer på samma dator kan använda IP-adressen för att ansluta.
    • Du kan också visa SQL Server-felloggen med hjälp av en textredigerare. Som standard finns felloggen i filerna Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG och ERRORLOG.n. Mer information finns i Visa felloggen för SQL Server.

Steg 1: kontrollera att instansen körs

Alternativ 1: Använd SQLCHECK-utdatafilen

  1. Search SQLCHECK-utdatafilen för "SQL Server Information".
  2. I avsnittet "Tjänster av intresse" hittar du din SQL Server-instans under kolumnerna Namn och Instans (för namngivna instanser) och kontrollerar dess status med hjälp av kolumnen Startad. Om värdet är True startas tjänsterna. Annars körs inte tjänsten för närvarande.
  3. Om tjänsten inte körs startar du tjänsten med antingen SQL Server Management Studio, SQL Server Configuration Manager, PowerShell eller Services-applet.

Alternativ 2: använd Konfigurationshanteraren för SQL Server

Kontrollera att instansen körs genom att välja SQL Server Services i Konfigurationshanteraren för SQL Server och kontrollera symbolen efter SQL Server-instansen.

  • En grön pil anger att en instans körs.
  • En röd fyrkant anger att en instans har stoppats.

Om instansen har stoppats högerklickar du på instansen och väljer Starta. Sedan startar serverinstansen och indikatorn blir en grön pil.

Alternativ 3: använd PowerShell-kommandon

Du kan använda följande kommando i PowerShell för att kontrollera status för SQL Server-tjänster i systemet:

Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -like "sql server*"}

Du kan använda följande kommando för att söka i felloggfilen efter den specifika strängen "SQL Server är nu redo för klientanslutningar. Det här är ett informationsmeddelande. Ingen användaråtgärd krävs.":

Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog | Select-String "SQL Server is now ready for client connections."

Steg 2: kontrollera att tjänsten SQL Server Browser körs

Obs!

Det här steget krävs bara för felsökning av anslutningsproblem med namngivna instanser.

Alternativ 1: Använd SQLCHECK-utdatafilen

  1. Search SQLCHECK-utdatafilen för "SQL Server Information".
  2. I avsnittet "Tjänster av intresse" söker du efter SQLBrowser i kolumnen Namn och kontrollerar dess status med hjälp av kolumnen Startad. Om värdet är True startas tjänsten. Annars körs inte tjänsten för närvarande och du måste starta den. Mer information finns i Starta, stoppa, pausa, återuppta, starta om SQL Server-tjänster.

Alternativ 2: använd Konfigurationshanteraren för SQL Server

Om du vill ansluta till en namngiven instans måste tjänsten SQL Server Browser köras. I SQL Server Configuration Manager letar du upp tjänsten SQL Server Browser och verifierar att den körs. Starta tjänsten om den inte körs. Tjänsten SQL Server Browser krävs inte för standardinstanser.

Mer information om hur du använder tjänsten SQL Server Browser i din miljö finns i tjänsten SQL Server Browser.

Mer information om hur du stoppar och startar SQL Services finns i Starta, stoppa, pausa, återuppta, starta om SQL Server-tjänster.

Obs!

Om du inte kan köra SQL Server Browser-tjänsten i din miljö kan du läsa Ansluta till SQL-server med namnet Instance utan SQL Servers webbläsartjänst.

Steg 3: kontrollera servernamnet i anslutningssträngen

Du får ofta fel när ett felaktigt servernamn anges i anslutningssträngen. Kontrollera att servernamnet matchar det som du hämtade i föregående steg.

Obs!

Om du använder SQLCHECK-verktyget granskar du värdena för NetBios-namn/FQDN i avsnittet Datorinformation i utdatafilen.

Steg 4: verifiera aliasen på klientdatorerna

Alias används ofta i klientmiljöer när du ansluter till SQL Server med ett alternativt namn eller när det finns problem med namnmatchning i nätverket. De skapas med hjälp av Konfigurationshanteraren för SQL Server eller klientnätverksverktyget. Ett felaktigt alias kan göra att anslutningarna från dina program ansluter till fel server, vilket resulterar i fel. Använd följande metoder för att leta efter felaktiga alias. Du kan också använda ett verktyg (till exempel SQLCHECK) på klientdatorn för att söka efter alias och andra anslutningsrelaterade inställningar på en klientdator.

Obs!

Följande alternativ gäller endast för de program som använder SQL Server Native Client för att ansluta till SQL Server.

Alternativ 1: Använd SQLCHECK-utdatafilen

  1. I SQLCHECK-utdatafilen söker du efter sql-aliassträngen. (Den här strängen finns i avsnittet Klientsäkerhet och drivrutinsinformation i filen)
  2. Granska posterna i tabellen. Om det inte finns några, finns det inga alias på datorn. Om det finns en post granskar du informationen för att se till att servernamnet och portnumret är inställda på rätt värden.

Exempel på utdata:
SQL-alias:

Alias Name   Protocol   Server Name     Port   32-bit 

----------   --------   ------------    ----   ------ 

prodsql      TCP        prod_sqlserver  1430      

Utdata anger att prodsql är ett alias för en SQL Server med namnet prod_sqlserver som körs på port 1430.

Alternativ 2: Kontrollera alias i Konfigurationshanteraren för SQL Server

  1. I Konfigurationshanteraren för SQL Server expanderar du Konfigurations av inbyggd klient för SQL Server och väljer Alias.

  2. Kontrollera om några alias har definierats för den server som du försöker ansluta till.

    Om alias finns följer du dessa steg:

    1. Öppna fönstret Egenskaper för alias.
    2. Byt namn på värdet i fältet Aliasnamn (om servernamnet till exempel är MySQL byter du namn på det till MySQL_test) och försöker ansluta igen. Om anslutningen fungerar är ditt alias felaktigt och kan komma från en gammal konfiguration som inte längre behövs. Om anslutningen inte fungerar byter du namn på aliaset tillbaka till det ursprungliga namnet och går till nästa steg.
    3. Kontrollera anslutningsparametrarna för aliaset och se till att de är korrekta. Följande vanliga scenarier kan orsaka anslutningsproblem:
      • Felaktig IP-adress för fältet Server. Kontrollera att IP-adressen matchar posten i SQL Server-felloggfilen.
      • Felaktigt servernamn i fältet Server. Serveraliaset pekar till exempel på rätt servernamn. Anslutningarna misslyckas dock om värdet för servernamnparametern är felaktigt.
      • Felaktigt format för pipes-namn (förutsatt att du använder ett namngivet pipes-alias).
        • När du ansluter till en standardinstans med namnet Mydefaultinstance ska pipe-namnet vara \\Mydefaultinstance\pipe\sql\query.
        • När du ansluter till en namngiven instans MySQL\Named ska pipe-namnet vara \\MySQL\pipe\MSSQL$Named\sql\query.

Alternativ 3: Kontrollera alias i klientnätverksverktyget för SQL Server

  1. Öppna klientnätverksverktyget för SQL Server genom att skriva cliconfg.exe i kommandot Kör.
  2. Följ steg 2 i Alternativ 2: Kontrollera alias i Konfigurationshanteraren för SQL Server.

Steg 5: Verifiera brandväggskonfigurationen

Du kan verifiera brandväggskonfigurationen beroende på standardinstansen eller den namngivna instansen.

Obs!

Om du använder brandväggar från tredje part i nätverket gäller fortfarande begreppen. Du kan dock behöva arbeta med nätverksadministratören eller läsa dokumentationen för brandväggsprodukten för mer information om hur du konfigurerar brandväggen för att tillåta nödvändiga portar för kommunikation med SQL Server.

Standardinstans av SQL Server

En standardinstans körs vanligtvis på port 1433. Vissa installationer använder också en icke-standardport (annan än 1433) för att köra SQL-instanser. Brandväggen kan blockera någon av portarna. Följ dessa steg för att kontrollera portnumren ytterligare:

  1. Kontrollera vilken port din SQL-instans körs på. Se Hämta TCP-porten för instansen.
    • Om din SQL Server är konfigurerad för att lyssna på port 1433 kontrollerar du att brandväggar i nätverket mellan klienten och servern tillåter trafik på den porten. Läs Konfigurera en Windows-brandvägg för databasmotoråtkomst och samarbeta med nätverksadministratören för att implementera nödvändiga lösningar.
    • Om SQL Server-standardinstansen inte använder 1433 kan du försöka lägga till portnumret för SQL Server i servernamnet med hjälp av formatet <servername>,<portnumber> och se om det fungerar. Ditt SQL-instansnamn är till exempel MySQLDefaultinstance och körs på port 2000. Ange servernamnet som MySQLServer, 2000 och se om det fungerar.
      • Om det inte fungerar indikerar det att brandväggen blockerar porten. Du kan följa anvisningarna i Konfigurera en Windows-brandvägg för databasmotoråtkomst eller arbeta med nätverksadministratören för att lägga till porten i undantagslistan för brandväggen.
      • Om det fungerar indikerar det att brandväggen tillåter kommunikation via porten. Du måste ändra anslutningssträngen för att kunna använda portnumret och servernamnet i programmets anslutningssträng.

Namngiven instans av SQL Server

Om din SQL-instans är en namngiven instans kan den konfigureras att använda antingen dynamiska portar eller en statisk port. I båda fallen frågar de underliggande nätverksbiblioteken tjänsten SQL Server Browser som körs på din SQL Server-dator via UDP-port 1434 om att räkna upp portnumret för den namngivna instansen. Om en brandvägg mellan klienten och servern blockerar den här UDP-porten kan klientbiblioteket inte fastställa porten (ett krav för anslutning) och anslutningen misslyckas. För att kontrollera anslutningen kan du använda någon av följande metoder:

  • Metod 1: kontrollera anslutningen genom att ange portnumret i anslutningssträngen.

    1. Kontrollera vilken port din SQL-instans körs på. Se Hämta TCP-porten för instansen.
    2. Försök att ansluta till den namngivna instansen med hjälp av det portnummer som läggs till i servernamnet i formatet <servername\instancename>,<portnumber> och se om det fungerar. Om ditt SQL-instansnamn till exempel är MySQL\Namedinstance och körs på port 3000 anger du servernamnet som MySQL\Namedinstance,3000.
      • Om det fungerar indikerar det att brandväggen blockerar UDP-port 1434 eller att instansen är dold från SQL Server Browser.
      • Om det inte fungerar indikerar det någon av följande situationer:
        • Antingen blockeras UDP-port 1434 eller så blockeras den statiska porten, eller båda. Om du vill kontrollera om det är UDP-porten eller den statiska porten använder du Portqry.
        • Instansen är dold från tjänsten SQL Server Browser.
  • Metod 2: kontrollera anslutningen med hjälp av verktyget PortQryUI.

    Använd verktyget PortQryUI med den namngivna instansen och observera de resulterande utdata. Du kan se ett meddelande om att UDP-port 1434 filtreras. Det här meddelandet anger att porten är blockerad i nätverket. Anvisningar om hur du använder verktyget finns i Använd verktyget PortQryUI med SQL Server.

    Kontrollera om SQL Server-instansen lyssnar på dynamiska eller statiska portar Använd sedan följande metod som är relevant för ditt scenario. Om du inte är säker kan du läsa Så här kontrollerar du om SQL Server lyssnar på en dynamisk port eller statisk port.

    • Scenario 1: dynamiska portar. I det här fallet kontrollerar du att tjänsten SQL Server Browser startas och att UDP-port 1434 inte blockeras i brandväggen mellan klienten och servern. Om du inte kan göra något av detta bör du byta SQL Server-instans till en statisk port och använda proceduren som beskrivs i Konfigurera en server för att lyssna på en specifik TCP-port.
    • Scenario 2: konfiguration av statisk port. Antingen körs SQL Server Browser inte eller så går det inte att öppna UDP 1434 i brandväggen. I det här fallet måste du ange den statiska porten i anslutningssträngen och att brandväggen inte blockerar porten. Mer information finns i Konfigurera en Windows-brandvägg för databasmotoråtkomst.

Steg 6: verifiera de aktiverade protokollen på SQL Server

I vissa installationer av SQL Server aktiveras inte anslutningar till databasmotorn från en annan dator om inte en administratör aktiverar dem manuellt. Du kan använda något av följande alternativ för att kontrollera och aktivera de protokoll som krävs för att tillåta fjärranslutningar till SQL Servers databasmotor.

Alternativ 1: Använd SQLCHECK-utdatafilen

  1. Search SQLCHECK-utdatafilen för avsnittet "Information för SQL Server instans" och leta upp informationsavsnittet för din SQL Server-instans.

  2. I avsnittet letar du upp de värden som anges i följande tabell för att avgöra om SQL Server-protokoll är aktiverade:

    Värdenamn Implikation Mer information
    Delat minne aktiverat Kan antingen vara sant eller falskt – påverkar bara lokala anslutningar. Skapa en giltig anslutningssträng med hjälp av protokoll för delat minne
    Namngivna pipes aktiverade Om det är falskt misslyckas både lokala anslutningar och fjärranslutningar med namngivna pipes Välja ett nätverksprotokoll
    TCP-aktiverat Om det är falskt misslyckas både lokala anslutningar och fjärranslutningar med TCP/IP.
    Observera Majoriteten av de SQL Server-installationerna använder TCP/IP som kommunikationsprotokoll mellan servern och klienten.
    Välja ett nätverksprotokoll
  3. Aktivera nödvändiga protokoll med hjälp av Konfigurationshanteraren för SQL Server eller SQL Server PowerShell. Mer information finns i Aktivera eller inaktivera ett servernätverksprotokoll.

    Obs!

    När du har aktiverat ett protokoll måste databasmotorn stoppas och startas om för att ändringen ska börja gälla.

Alternativ 2: använd Konfigurationshanteraren för SQL Server

Följ dessa steg om du vill aktivera anslutningar från en annan dator med hjälp av Konfigurationshanteraren för SQL Server:

  1. Öppna Konfigurationshanteraren för SQL Server.
  2. I den vänstra rutan expanderar du Nätverkskonfiguration för SQL Server och väljer sedan den instans av SQL Server som du vill ansluta till. I den högra rutan visas de tillgängliga anslutningsprotokollen. Delat minne är normalt aktiverat. Den kan bara användas från samma dator, så de flesta installationer lämnar delat minne aktiverat. Om du vill ansluta till SQL Server från en annan dator använder du TCP/IP. Om TCP/IP inte är aktiverat högerklickar du på TCP/IP och väljer sedan Aktivera.
  3. Om du ändrar den aktiverade inställningen för ett protokoll startar du om databasmotorn. Välj SQL Server-tjänster i det vänstra fönstret. Högerklicka på instansen av databasmotorn i den högra rutan och välj sedan Starta om.

Steg 7: testa TCP/IP-anslutning

Anslutning till SQL Server med hjälp av TCP/IP kräver att Windows upprättar anslutningen. Du kan använda följande steg för att testa TCP-anslutningen med hjälp av pingverktyget.

  1. Start-menyn väljer du Kör. I fönstret Kör skriver du cmd och väljer OK.
  2. I kommandotolken skriver du ping och IP-adressen för den dator som kör SQL Server. Till exempel:
    • IPv4: ping 192.168.1.101
    • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11
  3. Om ditt nätverk är korrekt konfigurerat returnerar pingReply from <IP address> följt av ytterligare information. Om ping returnerar Destination host unreachable eller Request timed out är TCP/IP inte korrekt konfigurerat. Fel i det här läget indikerar ett problem med klientdatorn, serverdatorn eller något om nätverket, till exempel en router. Information om hur du felsöker nätverksproblem finns i Avancerad felsökning för TCP/IP-problem.
  4. Om testet ping lyckas med hjälp av IP-adressen testar du om datornamnet kan matchas till TCP/IP-adressen. På klientdatorn, i fönstret Kommandotolken, skriver du ping och namnet på datorn som kör SQL Server. Till exempel ping newofficepc.
  5. Om ping till IP-adressen lyckas, men ping till datornamnet returnerar Destination host unreachable eller Request timed out, kan du ha gammal (inaktuell) namnmatchningsinformation cachelagrad på klientdatorn. Skriv ipconfig /flushdns för att rensa DNS-cachen (dynamisk namnmatchning). Pinga sedan datorn med namnet igen. När DNS-cachen är tom kontrollerar klientdatorn den senaste informationen om IP-adressen för serverdatorn.
  6. Om ditt nätverk är korrekt konfigurerat returnerar pingReply from <IP address> följt av ytterligare information. Om du kan pinga serverdatorn via IP-adress men får ett fel, till exempel Destination host unreachable eller Request timed out när du pingar efter datornamn, är namnmatchningen inte korrekt konfigurerad. Mer information finns i Felsöka grundläggande TCP/IP-problem. Namnmatchning krävs inte för att ansluta till SQL Server. Men om datornamnet inte kan matchas till en IP-adress måste anslutningar upprättas för att ange IP-adressen. Namnmatchning kan åtgärdas senare.

Obs!

Du kan också använda cmdleten Test-NetConnection eller Test-Connection för att testa TCP-anslutningen enligt den PowerShell-version som är installerad på datorn. Mer information om denna PowerShell-cmdlet finns i Översikt över Cmdlet.

Steg 8: testa lokal anslutning

Innan du felsöker ett anslutningsproblem från en annan dator testar du möjligheten att ansluta från ett klientprogram som är installerat lokalt på den dator som kör SQL Server. Lokal anslutning undviker problem med nätverk och brandväggar.

Den här proceduren kräver SQL Server Management Studio. Om du inte har installerat Management Studio läser du Ladda ned SQL Server Management Studio (SSMS).

Om du inte kan installera Management Studio kan du testa anslutningen med hjälp av verktyget sqlcmd.exe. sqlcmd.exe installeras med databasmotorn. Information om sqlcmd.exe finns i sqlcmd-verktyget.

  1. Logga in på datorn där SQL Server installeras med hjälp av en inloggning som kan komma åt SQL Server. Under installationen kräver SQL Server att minst en inloggning anges som SQL Server-administratör. Om du inte känner någon administratör kan du läsa Ansluta till SQL Server när systemadministratörer är utelåsta.

  2. På sidan Start skriver du SQL Server Management Studio, eller på menyn Start i de äldre versionerna av Windows väljer du Alla program, väljer Microsoft SQL Server och väljer sedan SQL Server Management Studio.

  3. På rullgardinsmenyn Anslut väljer du Databasmotor. I rutan Autentisering väljer du Windows-autentisering. I rutan Servernamn skriver du någon av följande anslutningstyper:

    Ansluta till Typ Exempel
    Standardinstans <computer name> ACCNT27
    Namngiven instans <computer name\instance name> ACCNT27\PAYROLL

    Obs!

    När du ansluter till SQL Server från ett klientprogram på samma dator används protokollet för delat minne. Delat minne är en typ av lokalt namngiven pipe, så ibland uppstår fel relaterade till pipes.

  4. Om du får ett felmeddelande nu måste du lösa det innan du fortsätter. Din inloggning kanske inte har behörighet att ansluta. Standarddatabasen kanske saknas.

    Obs!

    Du kan inte felsöka problemet utan tillräckligt med information eftersom vissa felmeddelanden skickas avsiktligt till klienten. Det här är en säkerhetsfunktion för att undvika att ge en angripare information om SQL Server. Information om felet finns i SQL Server-felloggen.

  5. Om du får felet 18456 Inloggningen misslyckades för användaren innehåller böcker online-artikeln MSSQLSERVER_18456 ytterligare information om felkoder. Aaron Bertrands blogg har också en omfattande lista över felkoder på Felsökning fel 18456 (extern länk). Du kan visa felloggen med hjälp av SSMS (om du kan ansluta) i avsnittet Hantering i Object Explorer. Annars kan du visa felloggen med Windows Notepad-programmet. Standardplatsen varierar beroende på din version och kan ändras under installationen. Standardplatsen för SQL Server 2019 (15.x) är C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Log\ERRORLOG.

  6. Om du kan ansluta med delat minne testar du anslutningen med hjälp av TCP. Du kan framtvinga en TCP-anslutning genom att ange tcp: före namnet. Här är några exempel:

    Ansluter till: Typ: Exempel:
    Standardinstans tcp:<computer name> tcp:ACCNT27
    Namngiven instans tcp:<computer name/instance name> tcp:ACCNT27\PAYROLL
  7. Om du kan ansluta med delat minne men inte TCP måste du åtgärda TCP-problemet. Det troligaste problemet är att TCP inte är aktiverat. Information om hur du aktiverar TCP finns i Steg 6: Verifiera de aktiverade protokollen på SQL Server.

  8. Om målet är att ansluta med ett annat konto än ett administratörskonto kan du börja med att ansluta som administratör. Försök sedan ansluta igen med inloggningen för Windows-autentisering eller inloggningen för SQL Server-autentisering som klientprogrammet använder.

Steg 9: Testa fjärranslutning

När du kan ansluta med hjälp av TCP på samma dator är det dags att försöka ansluta från klientdatorn. Du kan använda alla klientprogram, men för att undvika komplikationer installerar du hanteringsverktyg för SQL Server på klienten. Försök att använda SQL Server Management Studio efter installationen.

  1. Använd SQL Server Management Studio på klientdatorn och försök ansluta med hjälp av IP-adressen och TCP-portnumret i formatet IP-adress, komma, portnummer. Till exempel 192.168.1.101,1433. Om anslutningen misslyckas har du förmodligen något av följande problem:
  2. När du kan ansluta med hjälp av IP-adressen och portnumret granskar du följande scenarier:
    • Om du ansluter till en standardinstans som lyssnar på en annan port än 1433 måste du antingen använda portnumret i anslutningssträngen eller skapa ett alias på klientdatorn för att ansluta till standardinstansen. Tjänsten SQL Server Browser kan inte räkna upp portar för standardinstansen.
    • Om du ansluter till en namngiven instans försöker du ansluta till instansen i formatet IP-adress, omvänt snedstreck, instansnamn. (Till exempel 192.168.1.101\<instance name>.) Om den här åtgärden inte fungerar innebär det att portnumret inte returneras till klienten. Problemet gäller tjänsten SQL Server Browser, som tillhandahåller portnumret för en namngiven instans till klienten. Här är lösningarna:
      • Starta tjänsten SQL Server Browser. Se anvisningarna för att starta webbläsaren i Konfigurationshanteraren för SQL Server.
      • Tjänsten SQL Server Browser blockeras av brandväggen. Öppna UDP-port 1434 i brandväggen. Gå tillbaka till avsnittet Steg 5: verifiera brandväggskonfigurationen. Kontrollera att du öppnar en UDP-port, inte en TCP-port.
      • UDP-port 1434-informationen blockeras av en router. UDP-kommunikation (användardatagramprotokoll) är inte utformat för att passera genom routrar och hindrar nätverket från att fyllas med trafik med låg prioritet. Du kan konfigurera routern för att vidarebefordra UDP-trafik, eller så kan du ange portnumret varje gång du ansluter.
      • Om klientdatorn använder Windows 7, Windows Server 2008 eller ett nyare operativsystem kan klientoperativsystemet släppa UDP-trafiken eftersom svaret från servern returneras från en annan IP-adress som efterfrågades. Den här åtgärden är en säkerhetsfunktion som blockerar "lös källmappning". Mer information finns i avsnittet Flera server-IP-adresser i books online-artikeln Felsökning: Tidsgränsen har upphört att gälla. (Den här artikeln är från SQL Server 2008 R2, men huvudkontona gäller fortfarande. Du kan konfigurera klienten så att den använder rätt IP-adress eller anger portnumret varje gång du ansluter.)
  3. När du kan ansluta med hjälp av IP-adressen (eller IP-adressen och instansnamnet för en namngiven instans) kan du försöka ansluta med hjälp av datornamnet (eller datornamnet och instansnamnet för en namngiven instans). Placera tcp: framför datornamnet för att framtvinga en TCP/IP-anslutning. För standardinstansen på en dator med namnet ACCNT27 använder du till exempel tcp:ACCNT27. För en namngiven instans med namnet PAYROLL använder du tcp:ACCNT27\PAYROLL på den datorn. Om du kan ansluta med hjälp av IP-adressen men inte med hjälp av datornamnet har du ett problem med namnmatchningen. Gå tillbaka till avsnittet Steg 7: Testa TCP/IP-anslutning.
  4. När du kan ansluta med hjälp av datornamnet som tvingar TCP kan du försöka ansluta med hjälp av datornamnet utan att tvinga TCP. För en standardinstans använder du bara ett datornamn, till exempel CCNT27. För en namngiven instans använder du datornamnet och instansnamnet, till exempel ACCNT27\PAYROLL. Om du kan ansluta medan du tvingar TCP, men inte utan att tvinga TCP, använder klienten förmodligen ett annat protokoll, till exempel namngivna pipes. Du löser problemet genom att följa dessa steg:
    1. Använd Konfigurationshanteraren för SQL Server på klientdatorn. I det vänstra fönstret expanderar du SQL Native Client <version> Konfiguration och väljer sedan Klientprotokoll.
    2. Kontrollera att TCP/IP är aktiverat i det högra fönstret. Om TCP/IP är inaktiverat högerklickar du på TCP/IP och väljer Aktivera.
    3. Kontrollera att protokollordningen för TCP/IP är ett mindre tal än de namngivna pipes-protokollen (eller VIA i äldre versioner). I allmänhet bör du lämna delat minne som order 1 och TCP/IP som order 2. Delat minne används bara när klienten och SQL Server körs på samma dator. Alla aktiverade protokoll provas i ordning tills det lyckas, men delat minne hoppas över när anslutningen inte finns på samma dator.

Steg 10: Kontrollera användarbehörigheter

Om du använder namngivna pipes för att ansluta kontrollerar du om en användare har behörighet att logga in på Windows. Mer information finns i Felsöka problem med namngivna pipes-anslutningar.

Se även