Er is een netwerkgerelateerde of exemplaarspecifieke fout opgetreden bij het tot stand brengen van een verbinding met SQL Server
Van toepassing op: SQL Server
Wanneer u verbinding maakt met een SQL Server-exemplaar, kunt u een of meer van de volgende foutberichten tegenkomen. In dit artikel vindt u enkele stappen om u te helpen bij het oplossen van deze fouten. Deze worden gegeven in volgorde van de problemen, van eenvoudig tot complex.
Foutberichten
De volledige foutberichten variëren, afhankelijk van de clientbibliotheek die wordt gebruikt in de toepassing en de serveromgeving. U kunt de volgende details controleren om te zien of er een van de volgende foutberichten wordt weergegeven:
‘Een netwerkgerelateerde of exemplaarspecifieke fout is opgetreden bij het tot stand brengen van een verbinding met SQL Server. Controleer of de naam van het exemplaar juist is en of SQL Server is geconfigureerd om externe verbindingen toe te staan'
provider: Named Pipes Provider, fout: 40 - Kan geen verbinding met SQL Server openen (Microsoft SQL Server, fout: 53)
Een netwerkgerelateerde of exemplaarspecifieke fout is opgetreden bij het maken van een verbinding met SQL Server. De server wordt niet gevonden of toegang tot de server is niet mogelijk. Controleer of de exemplaarnaam correct is en of in de instellingen van SQL Server externe verbindingen zijn toegestaan.provider: Named Pipes Provider, fout: 40 - Kan geen verbinding met SQL Server openen (Microsoft SQL Server, fout: 53)
provider: TCP-provider, fout: 0 - Dergelijke host is niet bekend. (Microsoft SQL Server, fout: 11001)
provider: SQL-netwerkinterfaces, fout: 26 - Fout bij het zoeken naar de server/het opgegeven exemplaar
Een netwerkgerelateerde of exemplaarspecifieke fout is opgetreden bij het maken van een verbinding met SQL Server. De server wordt niet gevonden of toegang tot de server is niet mogelijk. Controleer of de exemplaarnaam correct is en of in de instellingen van SQL Server externe verbindingen zijn toegestaan.provider: SQL-netwerkinterfaces, fout: 26 - Fout bij het zoeken naar de server/het opgegeven exemplaar
Time-out voor aanmelding verlopen
SQL Server Native Client-gegevenskoppelingsfout[Microsoft SQL Server Native Client 10.0]: Time-out voor aanmelden is verlopen
[Microsoft SQL Server Native Client 10.0]: Er is een netwerkgerelateerde of exemplaarspecifieke fout opgetreden tijdens het tot stand brengen van een verbinding met SQL Server. Server is niet gevonden of niet toegankelijk. Controleer of de exemplaarnaam klopt en of in de instellingen van SQL Server externe verbindingen zijn toegestaan. Raadpleeg SQL Server Books Online voor meer informatie.
[Microsoft SQL Server Native Client 10.0]: SQL Server-netwerkinterfaces: Fout bij het zoeken naar server/exemplaar opgegeven [xFFFFFFFFFF].
Een verbindingspoging is mislukt omdat deze verbonden partij na een bepaalde periode niet goed heeft gereageerd of omdat de verbonden host niet heeft gereageerd
Een netwerkgerelateerde of exemplaarspecifieke fout is opgetreden bij het maken van een verbinding met SQL Server. De server wordt niet gevonden of toegang tot de server is niet mogelijk. Controleer of de exemplaarnaam correct is en of in de instellingen van SQL Server externe verbindingen zijn toegestaan.provider: TCP-provider, fout: 0
Een verbindingspoging is mislukt omdat deze verbonden partij na een bepaalde periode niet goed heeft gereageerd of omdat de verbonden host niet heeft gereageerd.
Microsoft SQL Server, fout: 10060
provider: Named Pipes Provider, fout: 40 - Kan geen verbinding met SQL Server openen
Een netwerkgerelateerde of exemplaarspecifieke fout is opgetreden bij het maken van een verbinding met SQL Server. De server wordt niet gevonden of toegang tot de server is niet mogelijk. Controleer of de exemplaarnaam correct is en of in de instellingen van SQL Server externe verbindingen zijn toegestaan.provider: Named Pipes Provider, fout: 40 - Kan geen verbinding met SQL Server openen
Microsoft SQL Server, fout: 53
Het netwerkpad is niet gevonden
[Microsoft][SQL Server Native Client 11.0]TCP-provider: er kan geen verbinding worden gemaakt omdat de doelcomputer deze actief heeft geweigerd
SQL Server Native Client-gegevenskoppelingsfout[Microsoft] [SQL Server Native Client 11.0]TCP-provider: er kan geen verbinding worden gemaakt omdat de doelcomputer deze actief heeft geweigerd.
[Microsoft] [SQL Server Native Client 11.0]Time-out voor aanmelden is verlopen.
[Microsoft][SQL Server Native Client 11.0]Er is een netwerkgerelateerde of exemplaarspecifieke fout opgetreden tijdens het tot stand brengen van een verbinding met SQL Server. Server is niet gevonden of niet toegankelijk. Controleer of de exemplaarnaam klopt en of in de instellingen van SQL Server externe verbindingen zijn toegestaan. Raadpleeg SQL Server Books Online voor meer informatie.
'SQL Server bestaat niet of de toegang wordt geweigerd'
Deze fout betekent meestal dat de client het SQL Server-exemplaar niet kan vinden. Dit probleem doet zich voor als ten minste een van de volgende problemen bestaat:
- De naam van de computer die SQL Server host, is onjuist.
- Het juiste IP-adres wordt niet door het exemplaar opgelost.
- Het TCP-poortnummer is niet juist opgegeven.
Notitie
Raadpleeg de volgende artikelen voor het oplossen van verbindingsproblemen in scenario's met hoge beschikbaarheid:
Windows-fout 233: Er is geen proces aan het andere uiteinde van de pijp
Het volledige bericht is:
Er is een verbinding tot stand gebracht met de server, maar er is een fout opgetreden tijdens het aanmeldingsproces. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) (Microsoft SQL Server, fout: 233)
Dit bericht betekent dat SQL Server niet luistert op het protocol Gedeeld geheugen of Named Pipes.
Informatie verzamelen voor het oplossen van de fout
U wordt aangeraden de informatie in deze sectie te verzamelen met behulp van een van de volgende opties voordat u doorgaat met de werkelijke stappen om de fout op te lossen.
Optie 1: het hulpprogramma SQL Check gebruiken om de vereiste informatie te verzamelen
Als u zich lokaal kunt aanmelden bij de SQL Server-computer en beheerderstoegang hebt, gebruikt u SQLCHECK. Dit hulpprogramma biedt de meeste informatie die nodig is voor het oplossen van problemen in één bestand. Bekijk de startpagina van het hulpprogramma voor meer informatie over het gebruik van het hulpprogramma en de informatie die het verzamelt. U kunt ook de pagina met aanbevolen vereisten en controlelijst raadplegen.
Optie 2: verzamel de gegevens afzonderlijk met behulp van de volgende procedures
De naam van het exemplaar ophalen uit Configuration Manager
Gebruik SQL Server Configuration Manager op de server die als host fungeert voor het SQL Server-exemplaar om de naam van het exemplaar te controleren:
Notitie
Configuration Manager wordt automatisch op de computer geïnstalleerd wanneer SQL Server is geïnstalleerd. Instructies voor het starten van Configuration Manager verschillen enigszins per versie van SQL Server en Windows. Zie SQL Server Configuration Manager voor versiespecifieke details.
Meld u aan bij de computer waarop het exemplaar van SQL Server wordt gehost.
Start SQL Server Configuration Manager.
Selecteer in het linkerdeelvenster SQL Server Services.
Controleer in het rechterdeelvenster de naam van het exemplaar van de database-engine.
- SQL SERVER (MSSQLSERVER) geeft een standaardexemplaar van SQL Server aan. De naam van het standaardexemplaren is <computernaam>.
- SQL SERVER (<exemplaarnaam>) geeft een benoemd exemplaar van SQL Server aan. De naam van het benoemde exemplaar is <computernaam>\<exemplaarnaam>.
Het IP-adres van de server ophalen
U kunt de volgende stappen gebruiken om het IP-adres op te halen van de computer die als host fungeert voor het exemplaar van SQL Server.
Selecteer in het menu Start Uitvoeren. Typ in het vak Uitvoeren cmd en klik vervolgens op OK.
Typ in het venster Opdrachtprompt ipconfig/all en druk vervolgens op Enter. Noteer het IPv4-adres en het IPv6-adres.
Notitie
SQL Server kan verbinding maken met behulp van het IP-versie 4-protocol of het IP-versie 6-protocol. Uw netwerk kan een ervan of beide toestaan.
De TCP-poort van het exemplaar ophalen
In de meeste gevallen maakt u verbinding met de database-engine op een andere computer met behulp van het TCP-protocol. Ga als volgt te werk om de TCP-poort van het exemplaar op te halen:
Gebruik SQL Server Management Studio op de computer waarop SQL Server wordt uitgevoerd en maak verbinding met het exemplaar van SQL Server. Vouw in Objectverkenner Beheer uit, vouw SQL Server Logboeken uit en dubbelklik op het huidige logboek.
Selecteer Filter op de werkbalk in de Logboekbestandsviewer. Typ in het vak Bericht bevat tekst server luistert op, selecteer Filter toepassen en selecteer vervolgens OK.
Een bericht zoals 'Server luistert op [ any' <ipv4> 1433]' moet worden vermeld.
Dit bericht geeft aan dat het exemplaar van SQL Server luistert op alle IP-adressen op deze computer (voor IP-versie 4) en TCP-poort 1433. (TCP-poort 1433 is meestal de poort die wordt gebruikt door de database-engine of het standaardexemplaren van SQL Server. Slechts één exemplaar van SQL Server kan deze poort gebruiken. Als meer dan één exemplaar van SQL Server is geïnstalleerd, moeten sommige exemplaren andere poortnummers gebruiken.) Noteer het poortnummer dat wordt gebruikt door het SQL Server-exemplaar waarmee u verbinding wilt maken.
Notitie
- IP-adres 127.0.0.1 wordt waarschijnlijk vermeld. Het wordt het loopback-adapteradres genoemd. Alleen processen op dezelfde computer kunnen het IP-adres gebruiken om verbinding te maken.
- U kunt het SQL Server-foutenlogboek ook weergeven met behulp van een teksteditor. Het foutenlogboek bevindt zich standaard in de bestanden Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG en ERRORLOG.n. Zie Het SQL Server-foutenlogboek weergeven voor meer informatie.
Stap 1: controleer of het exemplaar wordt uitgevoerd
Optie 1: het SQLCHECK-uitvoerbestand gebruiken
- Zoek in het SQLCHECK-uitvoerbestand naar SQL Server-gegevens.
- Zoek in de sectie 'Services van belang' uw SQL Server-exemplaar onder de kolommen Naam en Exemplaar (voor benoemde exemplaren) en controleer de status ervan met behulp van de kolom Gestart. Als de waarde Waar is, worden de services gestart. Anders wordt de service momenteel niet uitgevoerd.
- Als de service niet wordt uitgevoerd, start u de service met behulp van SQL Server management studio, SQL Server Configuration Manager, PowerShell of Services-applet.
Optie 2: SQL Server Configuration Manager gebruiken
Als u wilt controleren of het exemplaar wordt uitgevoerd, selecteert u SQL Server Services in SQL Server Configuration Manager en controleert u het symbool bij het SQL Server-exemplaar.
- Een groene pijl geeft aan dat een exemplaar wordt uitgevoerd.
- Een rood vierkantje geeft aan dat een exemplaar is gestopt.
Als het exemplaar is gestopt, klikt u met de rechtermuisknop op het exemplaar en selecteert u Start. Vervolgens wordt het serverexemplaar gestart en wordt de indicator een groene pijl.
Optie 3: PowerShell-opdrachten gebruiken
U kunt de volgende opdracht in PowerShell gebruiken om de status van SQL Server-services op het systeem te controleren:
Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -like "sql server*"}
U kunt de volgende opdracht gebruiken om in het foutenlogboekbestand te zoeken naar de specifieke tekenreeks 'SQL Server is nu gereed voor clientverbindingen. Dit is een informatieve boodschap; er is geen gebruikersactie vereist':
Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog | Select-String "SQL Server is now ready for client connections."
Stap 2: controleer of de SQL Server Browser-service wordt uitgevoerd
Notitie
Deze stap is alleen vereist voor het oplossen van verbindingsproblemen met benoemde exemplaren.
Optie 1: het SQLCHECK-uitvoerbestand gebruiken
- Zoek in het SQLCHECK-uitvoerbestand naar SQL Server-gegevens.
- Zoek in de sectie 'Services van belang' naar SQLBrowser in de kolom Naam en controleer de status ervan met behulp van de kolom Gestart. Als de waarde Waar is, wordt de service gestart. Anders wordt de service momenteel niet uitgevoerd en moet u deze starten. Zie Starten, stoppen, onderbreken, hervatten, SQL Server-services opnieuw starten voor meer informatie.
Optie 2: SQL Server Configuration Manager gebruiken
Als u verbinding wilt maken met een benoemd exemplaar, moet de SQL Server Browser-service worden uitgevoerd. Zoek in SQL Server Configuration Manager de SQL Server Browser-service en controleer of deze wordt uitgevoerd. Als deze niet wordt uitgevoerd, start u de service. De SQL Server Browser-service is niet vereist voor standaardexemplaren.
Zie SQL Server Browser-service voor meer informatie over het gebruik van SQL Server Browser-service in uw omgeving.
Zie Starten, stoppen, onderbreken, hervatten, opnieuw starten van SQL Server-services voor meer informatie over het stoppen en starten van SQL Services.
Notitie
Als u de SQL Server Browser-service niet kunt uitvoeren in uw omgeving, raadpleegt u Verbinding maken met een benoemd exemplaar van SQL Server zonder SQL Server Browser-service.
Stap 3: controleer de servernaam in de verbindingsreeks
Er treden vaak fouten op wanneer een onjuiste servernaam is opgegeven in de verbindingsreeks. Zorg ervoor dat de servernaam overeenkomt met de naam die u in de vorige stappen hebt opgehaald.
Notitie
Als u het hulpprogramma SQLCHECK gebruikt, controleert u de NetBios-naam/FQDN-waarden in de sectie Computergegevens van het uitvoerbestand.
- Zie SQL Server-verbindingsreeksen voor voorbeelden van verbindingsreeksen.
- Zie voor meer gedetailleerde voorbeelden Conceptbewijs verbonden met SQL via ADO.NET onder Startpagina voor SQL clientprogrammering.
Stap 4: de aliassen op de clientcomputers verifiëren
Aliassen worden vaak gebruikt in clientomgevingen wanneer u verbinding maakt met SQL Server met een alternatieve naam of wanneer er problemen zijn met naamomzetting in het netwerk. Ze worden gemaakt met behulp van SQL Server Configuration Manager of clientnetwerkhulpprogramma. Een onjuiste alias kan ertoe leiden dat de verbindingen van uw toepassingen verbinding maken met de verkeerde server, wat kan leiden tot een fout. Voer de volgende stappen uit om te controleren op onjuiste aliassen. U kunt ook een hulpprogramma (zoals SQLCHECK) op de clientcomputer gebruiken om te controleren op aliassen en verschillende andere verbindingsinstellingen op een clientcomputer.
Notitie
De volgende opties zijn alleen van toepassing op de toepassingen die SQL Server Native Client gebruiken om verbinding te maken met SQL Server.
Optie 1: het SQLCHECK-uitvoerbestand gebruiken
- Zoek in het SQLCHECK-uitvoerbestand naar de tekenreeks-SQL-aliassen. (Deze tekenreeks bevindt zich in het gedeelte Clientbeveiliging en stuurprogrammagegevens van het bestand)
- Controleer de vermeldingen in de tabel. Als er geen aliassen aanwezig zijn, zijn er geen aliassen op de computer. Als er een vermelding is, controleert u de informatie om ervoor te zorgen dat de servernaam en het poortnummer op de juiste waarden zijn ingesteld.
Voorbeelduitvoer:
SQL-aliassen:
Alias Name Protocol Server Name Port 32-bit
---------- -------- ------------ ---- ------
prodsql TCP prod_sqlserver 1430
De uitvoer geeft aan dat prodsql
dit een alias is voor een SQL Server prod_sqlserver
die wordt uitgevoerd op poort 1430.
Optie 2: Aliassen in SQL Server Configuration Manager controleren
Vouw in SQL Server Configuration Manager SQL Server Native Client-configuratie uit en selecteer Aliases.
Controleer of er aliassen zijn gedefinieerd voor de server waarmee u verbinding wilt maken.
Als de aliassen bestaan, voert u de volgende stappen uit:
- Open het deelvenster Eigenschappen van de alias.
- Wijzig de naam van de waarde in het veld Aliasnaam (als uw servernaam bijvoorbeeld MySQL is, hernoem deze dan als MySQL_test) en probeer de verbinding opnieuw. Als de verbinding werkt, is uw alias onjuist en kan deze afkomstig zijn van een oude configuratie die niet langer nodig is. Als de verbinding niet werkt, wijzigt u de naam van de alias in de oorspronkelijke naam en gaat u naar de volgende stap.
- Controleer de verbindingsparameters voor de alias en controleer of deze juist zijn. De volgende veelvoorkomende scenario's kunnen connectiviteitsproblemen veroorzaken:
- Onjuist IP-adres voor het veld Server. Zorg ervoor dat het IP-adres overeenkomt met de vermelding in het SQL Server-foutenlogboekbestand.
- Onjuiste servernaam in het veld Server. Uw serveralias verwijst bijvoorbeeld naar de juiste servernaam. De verbindingen mislukken echter als de waarde van de servernaamparameter onjuist is.
- Onjuiste opmaak van de naam van de pipe (ervan uitgaande dat u een alias met named pipes gebruikt).
- Wanneer u verbinding maakt met een standaardexemplaren met de naam Mydefaultinstance, moet de pijpnaam \\Mydefaultinstance\pipe\sql\query zijn.
- Wanneer u verbinding maakt met een benoemd exemplaar mySQL\Named, moet de pijpnaam \\MySQL\pipe\MSSQL$Named\sql\query zijn.
Optie 3: Aliassen controleren in SQL Server-clientnetwerkhulpprogramma
- Open SQL Server-clientnetwerkhulpprogramma door cliconfg.exe te typen in de opdracht Uitvoeren.
- Volg stap 2 in Optie 2: Controleer aliassen in SQL Server Configuration Manager.
Stap 5: De firewallconfiguratie controleren
U kunt de firewallconfiguratie controleren, afhankelijk van het standaardexemplaar of het benoemde exemplaar.
Notitie
Als u firewalls van derden in uw netwerk gebruikt, zijn de concepten nog steeds van toepassing. Het is echter mogelijk dat u met uw netwerkbeheerder moet samenwerken of de documentatie van het firewallproduct moet raadplegen voor meer informatie over het configureren van de firewall om de benodigde poorten voor communicatie met SQL Server toe te staan.
Standaardexemplaar van SQL Server
Een standaardexemplaar wordt doorgaans uitgevoerd op poort 1433. Sommige installaties gebruiken ook een niet-standaardpoort (anders dan 1433) om SQL-exemplaren uit te voeren. De firewall kan beide poorten blokkeren. Volg deze stappen om het poortnummer verder te controleren:
- Bepaal op welke poort uw SQL-exemplaar wordt uitgevoerd. Raadpleeg De TCP-poort van het exemplaar ophalen.
-
- Als uw SQL Server is geconfigureerd om te luisteren op poort 1433, zorg er dan voor dat firewalls op het netwerk tussen de client en de server verkeer op die poort toestaan. Bekijk Een Windows Firewall configureren voor toegang tot database-engine en werk samen met uw netwerkbeheerder om de benodigde oplossingen te implementeren.
- Als uw standaardexemplaar van SQL Server 1433 niet gebruikt, probeer dan het poortnummer van SQL Server toe te voegen aan de servernaam met behulp van de indeling
<servername>,<portnumber>
en kijk of het werkt. De naam van uw SQL-exemplaar is bijvoorbeeld MySQLDefaultinstance en wordt uitgevoerd op poort 2000. Geef de servernaam op als MySQLServer, 2000 en kijk of deze werkt.- Als dit niet werkt, wordt aangegeven dat de poort wordt geblokkeerd door de firewall. U kunt de instructies volgen op Een Windows Firewall configureren voor toegang tot de database-engine of samenwerken met uw netwerkbeheerder om de poort toe te voegen aan de lijst met uitsluitingen van firewalls.
- Als dit werkt, geeft dit aan dat de firewall communicatie via die poort toestaat. U moet uw verbindingsreeks wijzigen om het poortnummer en uw servernaam te gebruiken in de verbindingsreeks van uw toepassing.
Benoemd exemplaar van SQL Server
Als uw SQL-instantie een benoemd exemplaar is, kan deze worden geconfigureerd om dynamische poorten of een statische poort te gebruiken. In beide gevallen voeren de onderliggende netwerkbibliotheken een query uit op de SQL Server Browser-service die wordt uitgevoerd op uw SQL Server-computer via UDP-poort 1434 om het poortnummer voor het benoemde exemplaar op te sommen. Als een firewall tussen de client en de server deze UDP-poort blokkeert, kan de clientbibliotheek de poort (een vereiste voor verbinding) niet bepalen en mislukt de verbinding. Voer een van de volgende methoden uit om de verbinding te controleren:
Methode 1: controleer de verbinding door het poortnummer in uw verbindingsreeks op te geven.
- Bepaal op welke poort uw SQL-exemplaar wordt uitgevoerd. Raadpleeg De TCP-poort van het exemplaar ophalen.
- Probeer verbinding te maken met het benoemde exemplaar met behulp van het poortnummer dat is toegevoegd aan de servernaam in de indeling
<servername\instancename>,<portnumber>
en kijk of dat werkt. Als de naam van uw SQL-exemplaar bijvoorbeeld MySQL\Namedinstance is en deze wordt uitgevoerd op poort 3000, geeft u de servernaam op als MySQL\Namedinstance,3000.- Als dit werkt, wordt aangegeven dat de firewall de UDP-poort 1434 blokkeert of dat het exemplaar is verborgen voor SQL Server Browser.
- Als dit niet werkt, wordt een van de volgende situaties aangegeven:
Methode 2: controleer de verbinding met behulp van het hulpprogramma PortQryUI.
Gebruik het hulpprogramma PortQryUI met uw benoemde exemplaar en bekijk de resulterende uitvoer. Mogelijk ziet u een bericht dat de UDP-poort 1434 is gefilterd. Dit bericht geeft aan dat de poort is geblokkeerd op het netwerk. Zie Het hulpprogramma PortQryUI gebruiken met SQL Server voor instructies over het gebruik van het hulpprogramma.
Controleer of het SQL Server-exemplaar luistert op dynamische of statische poorten. Gebruik vervolgens de volgende methode die relevant is voor uw scenario. Als u het niet zeker weet, raadpleegt u Controleren of SQL Server luistert op een dynamische of statische poort.
- Scenario 1: dynamische poorten. Zorg er in dit geval voor dat de SQL Server Browser-service is gestart en dat UDP-poort 1434 niet wordt geblokkeerd op de firewall tussen de client en de server. Als u een van deze dingen niet kunt doen, moet u uw SQL Server-exemplaar overschakelen naar een statische poort en de procedure gebruiken die wordt beschreven in Een server configureren om te luisteren op een specifieke TCP-poort.
- Scenario 2: configuratie van statische poort. SQL Server Browser wordt niet uitgevoerd of UDP 1434 kan niet worden geopend op de firewall. Zorg er in dit geval voor dat u de statische poort in uw verbindingsreeks opgeeft en dat de poort niet wordt geblokkeerd door de firewall. Raadpleeg Een Windows Firewall configureren voor toegang tot database-engine voor meer informatie.
Stap 6: controleer de ingeschakelde protocollen op SQL Server
In sommige installaties van SQL Server worden verbindingen met de database-engine vanaf een andere computer niet ingeschakeld, tenzij een beheerder deze handmatig inschakelt. U kunt een van de volgende opties gebruiken om de benodigde protocollen te controleren en in te schakelen om externe verbindingen met SQL Server database-engine toe te staan.
Optie 1: het SQLCHECK-uitvoerbestand gebruiken
Zoek in het SQLCHECK-uitvoerbestand naar de sectie Details voor SQL Server-exemplaar en zoek de informatiesectie voor uw SQL Server-exemplaar.
Zoek in de sectie de waarden in de volgende tabel om te bepalen of de SQL Server-protocollen zijn ingeschakeld:
Waardenaam Implicatie Meer informatie Gedeeld geheugen ingeschakeld Kan waar zijn of niet waar. Dit is alleen van invloed op lokale verbindingen. Een geldige verbindingsreeks maken met Shared Memory Protocol Named Pipes ingeschakeld Als dit onwaar is, mislukken zowel lokale als externe verbindingen met Named Pipes Een netwerkprotocol kiezen TCP ingeschakeld Als dit onwaar is, mislukken zowel lokale als externe verbindingen met TCP/IP.
Opmerking De meeste SQL Server-installaties gebruiken TCP/IP als communicatieprotocol tussen de server en de client.Een netwerkprotocol kiezen Schakel vereiste protocollen in met behulp van SQL Server Configuration Manager of SQL Server PowerShell. Zie Een servernetwerkprotocol in- of uitschakelen voor meer informatie.
Notitie
Nadat een protocol is ingeschakeld, moet de database-engine worden gestopt en opnieuw worden gestart om de wijziging van kracht te laten worden.
Optie 2: SQL Server Configuration Manager gebruiken
Als u verbindingen vanaf een andere computer wilt inschakelen met behulp van de SQL Server Configuration Manager, voert u de volgende stappen uit:
- Open de SQL Server Configuration Manager.
- Vouw in het linkerdeelvenster SQL Server Netwerkconfiguratie uit en selecteer vervolgens het exemplaar van SQL Server waarmee u verbinding wilt maken. In het rechterdeelvenster worden de beschikbare verbindingsprotocollen weergegeven. Gedeeld geheugen is normaal gesproken ingeschakeld. Het kan alleen worden gebruikt vanaf dezelfde computer, dus de meeste installaties laten Gedeeld geheugen ingeschakeld. Gebruik TCP/IP om vanaf een andere computer verbinding te maken met SQL Server. Als TCP/IP niet is ingeschakeld, klikt u met de rechtermuisknop op TCP/IP en selecteert u Inschakelen.
- Als u de ingeschakelde instelling voor een protocol wijzigt, start u de database-engine opnieuw op. Selecteer in het linkerdeelvenster SQL Server Services. Klik in het rechterdeelvenster met de rechtermuisknop op het exemplaar van de database-engine en selecteer vervolgens Opnieuw opstarten.
Stap 7: TCP/IP-connectiviteit testen
Als u verbinding maakt met SQL Server via TCP/IP, moet Windows de verbinding tot stand brengen. U kunt de volgende stappen gebruiken om TCP-connectiviteit te testen met behulp van het pinghulpprogramma.
- Selecteer in het menu Start Uitvoeren. Typ in het vak Uitvoeren cmd en klik vervolgens op OK.
- Typ
ping
in het Opdrachtprompt venster het IP-adres van de computer waarop SQL Server wordt uitgevoerd. Bijvoorbeeld:- IPv4:
ping 192.168.1.101
- IPv6:
ping fe80::d51d:5ab5:6f09:8f48%11
- IPv4:
- Als uw netwerk correct is geconfigureerd, retourneert
ping
Reply from <IP address>
gevolgd door extra informatie. Alsping
Destination host unreachable
ofRequest timed out
retourneert is TCP/IP niet juist geconfigureerd. Fouten wijzen op dit punt op een probleem met de clientcomputer, de servercomputer of iets over het netwerk, zoals een router. Zie Geavanceerde probleemoplossing voor TCP/IP-problemen om netwerkproblemen op te lossen. - Als de
ping
test slaagt met behulp van het IP-adres, test u of de computernaam kan worden omgezet in het TCP/IP-adres. Typ op de clientcomputer in het Opdrachtprompt venster ping en de naam van de computer waarop SQL Server wordt uitgevoerd. Bijvoorbeeldping newofficepc
. - Als pingen naar het IP-adres slaagt, maar pingen naar de computernaam wordt geretourneerd
Destination host unreachable
ofRequest timed out
, hebt u mogelijk oude (verouderde) naamomzettingsgegevens in de cache op de clientcomputer. Typipconfig /flushdns
om de DNS-cache (Dynamische naamomzetting) te wissen. Ping de computer vervolgens opnieuw op naam. Wanneer de DNS-cache leeg is, controleert de clientcomputer de meest recente informatie over het IP-adres voor de servercomputer. - Als uw netwerk correct is geconfigureerd, retourneert
ping
Reply from <IP address>
gevolgd door extra informatie. Als u de servercomputer kunt pingen op IP-adres, maar een fout ontvangt zoalsDestination host unreachable
ofRequest timed out
wanneer u pingt op computernaam, is naamomzetting niet correct geconfigureerd. Zie voor meer informatie hoe u Eenvoudige TCP/IP-problemen kunt oplossen. Een geslaagde naamomzetting is niet vereist om verbinding te maken met SQL Server. Als de computernaam echter niet kan worden omgezet in een IP-adres, moeten er verbindingen worden gemaakt om het IP-adres op te geven. Naamomzetting kan later worden opgelost.
Notitie
U kunt ook de cmdlet Test-NetConnection of Test-Connection gebruiken om TCP-connectiviteit te testen op basis van de PowerShell-versie die op de computer is geïnstalleerd. Raadpleeg Cmdlet-overzicht voor meer informatie over PowerShell-cmdlet.
Stap 8: lokale verbinding testen
Voordat u een verbindingsprobleem vanaf een andere computer oplost, test u de mogelijkheid om verbinding te maken vanaf een clienttoepassing die lokaal is geïnstalleerd op de computer waarop SQL Server wordt uitgevoerd. Lokale verbinding voorkomt problemen met netwerken en firewalls.
Voor deze procedure is SQL Server Management Studio vereist. Zie Download SQL Server Management Studio (SSMS) als Management Studio niet is geïnstalleerd.
Als u Management Studio niet kunt installeren, kunt u de verbinding testen met behulp van het hulpprogramma sqlcmd.exe. sqlcmd.exe is geïnstalleerd met de database-engine. Zie sqlcmd Utility voor meer informatie over sqlcmd.exe.
Meld u aan bij de computer waarop SQL Server is geïnstalleerd met behulp van een aanmelding die toegang heeft tot SQL Server. Tijdens de installatie moet SQL Server ten minste één aanmelding opgeven als een SQL Server-beheerder. Als u geen beheerder kent, raadpleegt u Verbinding maken met SQL Server wanneer systeembeheerders zijn vergrendeld.
Typ op de pagina Start SQL Server Management Studio of selecteer in het menu Start van de oudere versies van Windows Alle programma's, selecteer Microsoft SQL Server en selecteer vervolgens SQL Server Management Studio.
Selecteer database-engine in het vervolgkeuzemenu Verbinding maken. Selecteer Windows-verificatie in het vak Verificatie. Typ een van de volgende verbindingstypen in het vak Servernaam:
Verbinding maken met Type Voorbeeld Standaardexemplaar <computer name>
ACCNT27
Benoemd exemplaar <computer name\instance name>
ACCNT27\PAYROLL
Notitie
Wanneer u verbinding maakt met SQL Server vanuit een clienttoepassing op dezelfde computer, wordt het protocol voor gedeeld geheugen gebruikt. Gedeeld geheugen is een type lokale named pipe, zodat er soms fouten optreden met betrekking tot pipes.
Als u op dit moment een fout ontvangt, moet u deze oplossen voordat u doorgaat. Uw aanmelding is mogelijk niet gemachtigd om verbinding te maken. De standaarddatabase ontbreekt mogelijk.
Notitie
U kunt het probleem niet oplossen zonder voldoende informatie, omdat sommige foutberichten opzettelijk aan de client worden doorgegeven. Dit is een beveiligingsfunctie om te voorkomen dat een aanvaller informatie krijgt over SQL Server. Als u de details van de fout wilt bekijken, raadpleegt u het SQL Server foutenlogboek.
Als u fout 18456: aanmelden is mislukt voor de gebruiker ontvangt, bevat het artikel MSSQLSERVER_18456 van Books Online aanvullende informatie over foutcodes. Het blog van Aaron Bertrand bevat ook een uitgebreide lijst met foutcodes bij Probleem oplossen fout 18456 (externe link). U kunt het foutenlogboek weergeven met behulp van SSMS (als u verbinding kunt maken) in de sectie Beheer van de Objectverkenner. Anders kunt u het foutenlogboek weergeven met het programma Windows Kladblok. De standaardlocatie verschilt per versie en kan tijdens de installatie worden gewijzigd. De standaardlocatie voor SQL Server 2019 (15.x) is C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Log\ERRORLOG.
Als u verbinding kunt maken met behulp van gedeeld geheugen, test u de verbinding met behulp van TCP. U kunt een TCP-verbinding afdwingen door
tcp:
vóór de naam op te geven. Dit zijn enkele voorbeelden:Verbinding maken met: Type: Voorbeeld: Standaardexemplaar tcp:<computer name>
tcp:ACCNT27
Benoemd exemplaar tcp:<computer name/instance name>
tcp:ACCNT27\PAYROLL
Als u verbinding kunt maken met behulp van gedeeld geheugen, maar niet via TCP, moet u het TCP-probleem oplossen. Het meest waarschijnlijke probleem is dat TCP niet is ingeschakeld. Zie Stap 6: controleer de ingeschakelde protocollen op SQL Server om TCP in te schakelen.
Als het uw doel is om verbinding te maken met behulp van een ander account dan een beheerdersaccount, kunt u beginnen met verbinding maken als beheerder. Probeer vervolgens opnieuw verbinding te maken met de aanmelding voor Windows-verificatie of de SQL Server-verificatieaanmelding die de clienttoepassing gebruikt.
Stap 9: externe verbinding testen
Zodra u verbinding kunt maken via TCP op dezelfde computer, is het tijd om verbinding te maken vanaf de clientcomputer. U kunt elke clienttoepassing gebruiken, maar om complexiteit te voorkomen installeert u de SQL Server Management-hulpprogramma's op de client. Probeer na de installatie SQL Server Management Studio te gebruiken.
- Gebruik SQL Server Management Studio op de clientcomputer en probeer verbinding te maken met behulp van het IP-adres en het TCP-poortnummer in de notatie IP-adreskommapoortnummer. Bijvoorbeeld
192.168.1.101,1433
. Als deze verbinding mislukt, hebt u waarschijnlijk een van de volgende problemen:ping
van het IP-adres werkt niet. Dit duidt op een algemeen TCP-configuratieprobleem. Terug naar de sectie Stap 7: TCP/IP-connectiviteit testen.- SQL Server luistert niet op het TCP-protocol. Terug naar de sectie Stap 6: controleer de ingeschakelde protocollen op SQL Server.
- SQL Server luistert op een andere poort dan de poort die u hebt opgegeven. Terug naar de sectie De TCP-poort ophalen.
- De SQL Server TCP-poort wordt geblokkeerd door de firewall. Terug naar de sectie stap 5: controleer de firewallconfiguratie.
- Zodra u verbinding kunt maken met behulp van het IP-adres en poortnummer, bekijkt u de volgende scenario's:
- Als u verbinding maakt met een standaardexemplaar dat luistert op een andere poort dan 1433, moet u het poortnummer in de verbindingsreeks gebruiken of een alias maken op de clientcomputer om verbinding te maken met het standaardexemplaar. De SQL Server Browser-service kan geen poorten van het standaardexemplaar opsommen.
- Als u verbinding maakt met een benoemd exemplaar, probeert u verbinding te maken met het exemplaar in de indeling van de naam van het IP-adres van het backslash-exemplaar. (Bijvoorbeeld,
192.168.1.101\<instance name>
). Als deze actie niet werkt, betekent dit dat het poortnummer niet wordt geretourneerd naar de client. Het probleem heeft te maken met de SQL Server Browser-service, die het poortnummer van een benoemd exemplaar aan de client levert. Dit zijn de oplossingen:- Start de SQL Server Browser-service. Zie de instructies voor het starten van de browser in SQL Server Configuration Manager.
- De SQL Server Browser-service wordt geblokkeerd door de firewall. Open UDP-poort 1434 in de firewall. Terug naar de sectie Stap 5: controleer de firewallconfiguratie. Zorg ervoor dat u een UDP-poort opent, niet een TCP-poort.
- De informatie over UDP-poort 1434 wordt geblokkeerd door een router. UDP-communicatie (user datagram protocol) is niet ontworpen om routers te passeren en voorkomt dat het netwerk wordt gevuld met verkeer met lage prioriteit. U kunt uw router configureren voor het doorsturen van UDP-verkeer of u kunt het poortnummer opgeven telkens wanneer u verbinding maakt.
- Als de clientcomputer gebruikmaakt van Windows 7, Windows Server 2008 of een recenter besturingssysteem, kan het clientbesturingssysteem het UDP-verkeer verwijderen omdat het antwoord van de server wordt geretourneerd vanaf een ander IP-adres waarop een query is uitgevoerd. Deze actie is een beveiligingsfunctie die 'losse brontoewijzing' blokkeert. Zie de sectie IP-adressen van meerdere servers in het artikel Probleemoplossing van boeken online: Time-out verlopen voor meer informatie. (Dit artikel is afkomstig van SQL Server 2008 R2, maar de principals zijn nog steeds van toepassing. U kunt de client zo configureren dat het juiste IP-adres wordt gebruikt of het poortnummer telkens wanneer u verbinding maakt.)
- Zodra u verbinding kunt maken met behulp van het IP-adres (of het IP-adres en de naam van het exemplaar voor een benoemd exemplaar), probeert u verbinding te maken met behulp van de computernaam (of computernaam en exemplaarnaam voor een benoemd exemplaar). Plaats
tcp:
vóór de computernaam om een TCP/IP-verbinding af te dwingen. Gebruik bijvoorbeeld voor het standaardexemplaar op een computer met de naam ACCNT27tcp:ACCNT27
. Voor een benoemd exemplaar met de naam PAYROLL gebruikt u op die computertcp:ACCNT27\PAYROLL
. Als u verbinding kunt maken via het IP-adres, maar niet via de computernaam, is er een probleem met naamomzetting. Terug naar de sectie Stap 7: TCP/IP-connectiviteit testen. - Zodra u verbinding kunt maken met behulp van de computernaam die TCP afdwingt, probeert u verbinding te maken met behulp van de computernaam zonder TCP af te dwingen. Bijvoorbeeld voor een standaardexemplaar en gebruik gewoon een computernaam zoals CCNT27. Gebruik voor een benoemd exemplaar de computernaam en exemplaarnaam, zoals ACCNT27\PAYROLL. Als u verbinding kunt maken tijdens het afdwingen van TCP, maar niet zonder TCP af te dwingen, gebruikt de client waarschijnlijk een ander protocol, zoals named pipes. Volg de stappen om dit probleem op te lossen:
- Gebruik SQL Server Configuration Manager op de clientcomputer. Vouw in het linkerdeelvenster sql Native Client-versieconfiguratie<> uit en selecteer vervolgens Clientprotocollen.
- Controleer in het rechterdeelvenster of TCP/IP is ingeschakeld. Als TCP/IP is uitgeschakeld, klikt u met de rechtermuisknop op TCP/IP en selecteert u Inschakelen.
- Zorg ervoor dat de protocolvolgorde voor TCP/IP een kleiner aantal is dan de named pipes -protocollen (of VIA op oudere versies). Over het algemeen moet u gedeeld geheugen laten staan als volgorde 1 en TCP/IP als volgorde 2. Gedeeld geheugen wordt alleen gebruikt wanneer de client en SQL Server op dezelfde computer worden uitgevoerd. Alle ingeschakelde protocollen worden op volgorde geprobeerd totdat één is gelukt, maar gedeeld geheugen wordt overgeslagen wanneer de verbinding zich niet op dezelfde computer bevindt.
Stap 10: Gebruikersmachtigingen controleren
Als u Named Pipes gebruikt om verbinding te maken, controleert u of een gebruiker gemachtigd is om u aan te melden bij Windows. Zie Het probleem met named pipes-verbindingen oplossen voor meer informatie.
Zie ook
- Netwerkprotocollen en netwerkbibliotheken
- Clientnetwerkconfiguratie
- Clientprotocollen configureren
- Verbindingsproblemen in SQL Server oplossen
- 0200 Consistent netwerkprobleem
- Verbinding maken met een AlwaysOn-listener voor beschikbaarheidsgroepen
- Always On failoverclusterexemplaren (SQL Server)
- Verbindingsproblemen en andere fouten oplossen met Azure SQL Database en Azure SQL Managed Instance