Поделиться через


Steps to troubleshoot SQL connectivity issues

We have been seeing and trying to resolve SQL connectivity issue all the time. I guess it would be helpful if we can put some guidance on how to resolve connectivity issues. Here comes a proposal based on my experience.

Basically, when you failed to connect to your SQL Server, the issue could be:

1) Network issue,

2) SQL Server configuration issue.

3) Firewall issue,

4) Client driver issue,

5) Application configuration issue.

6) Authentication and logon issue.

Usually, customers see connectivity issue in their applications, but it would be great if you can follow the steps below to eliminate issues one by one and post a question on SQL Server Data Access forum if needed.

Step 1: Network issue

You might be able to make local connection without a working network, but that's a special case. For remote connection, a stable network is required. The first thing to trouble shoot SQL connectivity issues is to make sure the network we rely on is workable and stable. Please run the following commands:

ping -a <your_target_machine> (use -4 and -6 for IPv4 and IPv6 specifically)

ping -a <Your_remote_IPAddress>

nslookup(type your local and remote machine name and IP address multiple times)

Be careful to see any mismatch on the returned results. If you are not able to ping your target machine, it has high chance that either the network is broken or the target machine is not running. It's possible the target machine is behind a firewall and the firewall blocks the packets sent by ping, though. Windows firewall does not block ping (ECHO) packet by default. The correctness of DNS configuration on the network is vital to SQL connection. Wrong DNS entry could cause of all sorts of connectivity issue later. See this link for example, "Cannot Generate SSPI Context" error message, Poisoned DNS.

Step 2: SQL Server configuration issue

You need to make sure the target SQL Server is running and is listening on appropriate protocols. You can use SQL Server Configuration Manager (SCM) to enable protocols on the server machine. SQL Server supports Shared Memory, Named Pipes, and TCP protocols (and VIA which needs special hardware and is rarely used). For remote connection, NP and/or TCP protocols must be enabled. Once you enabled protocols in SCM, please make sure restart the SQL Server.

You can open errorlog file to see if the server is successfully listening on any of the protocol. The location of errorlog file is usually under:

%ProgramFile%Microsoft SQL Server/MSSQLxx.xxx/MSSQL/Log

If the target SQL instance is a named instance, you also need to make sure SQL Browser is running on the target machine. If you are not able to access the remote SQL Server, please ask your admin to make sure all these happen.

 

Step 3: Firewall issue

A firewall on the SQL Server machine (or anywhere between client and server) could block SQL connection request. An easy way to isolate if this is a firewall issue is to turn off firewall for a short time if you can. Long term solution is to put exception for SQL Server and SQL Browser.

For NP protocol, please make sure file sharing is in firewall exception list. Both file sharing and NP use SMB protocol underneath.

For TCP protocol, you need put the TCP port on which the SQL Server listens on into exception.

For SQL Browser, please put UDP port 1434 into exception.

Meanwhile, you can put sqlservr.exe and sqlbrowser.exe into exception as well, but this is not recommended. IPSec between machines that we are not trusted could also block some packets. Note that firewall should never be an issue for local connections.

Step 4: Client driver issue

At this stage, you can test your connection using some tools. The tests need to be done on client machine for sure.

First try:

telnet <your_target_machine> <TCP_Port>

You should be able to telnet to the SQL server TCP port if TCP is enabled. Otherwise, go back to check steps 1-3. Then, use OSQL, SQLCMD, and SQL Management Studio to test sql connections. If you don't have those tools, please download SQL Express from Microsoft and you can get those tools for free.

OSQL (the one shipped with SQL Server 2000) uses MDAC.

OSQL (the one shipped with SQL Server 2005 & 2008) uses SNAC ODBC.

SQLCMD (shipped with SQL Server 2005 & 2008) uses SNAC OLEDB.

SQL Management Studio (shipped with SQL Server 2005 & 2008) uses SQLClient.

Possilbe command use be:

osql -E -SYour_target_machineYour_instance for Windows Auth

osql -Uyour_user -SYour_target_machineYour_instance for SQL Auth

SQLCMD also applies here. In addition, you can use “-Stcp:Your_target_machine, Tcp_port” for TCP, “-Snp:Your_target_machineYour_instance” for NP, and “-Slpc:Your_target_machineYour_instance” for Shared Memory. You would know if it fails for all protocols or just some specific procotols.

At this stage, you should not see general error message such as error 26 and error 40 anymore. If you are using NP and you still see error 40 (Named Pipes Provider: Could not open a connection to SQL Server), please try the following steps:

a) Open a file share on your server machine.

b) Run “net view \your_target_machine” and “net use \your_target_machineyour_share” (You can try Map Network Drive from Windows Explorer as well)

If you get failure in b), it's very likely you have OS/Network configuration issue, which is not SQL Server specific. Please search on internet to resolve this issue first.

 

You can try connection using both Windows Authentication and SQL Authentication. If the tests with all tools failed, there is a good chance that steps 1-3 were not set correctly, unless the failure is logon-related then you can look at step 6.

If you succeeds with some of the tools, but fails with other tools, it's probably a driver issue. You can post a question on our forum and give us the details.

You can also use “windowssystem32odbcad32.exe” (which ships with Windows) to test connection by adding new DSN for various drivers, but that's for ODBC only.

Step 5: Application issue

If you succeed with steps 1-4 but still see failure in your application, it's likely a configuration issue in your application. Think about couple of possible issues here.

a) Is your application running under the same account with the account you did tests in step 4? If not, you might want to try testing in step 4 under that account or change to a workable service account for your application if possible.

b) Which SQL driver does your app use?

c) What's your connection string? Is the connection string compatible to your driver? Please check https://www.connectionstrings.com/ for reference.

Step 6: Authentication and logon issue

This is probably the most difficult part for sql connectivity issues. It's often related to the configuration on your network, your OS and your SQL Server database. There is no simple solution for this, and we have to solve it case by case. There are already several blogs in sql_protocols talking about some special cases and you can check them see if any of them applies to your case. Apart from that, things to keep in mind:

a) If you use SQL auth, mixed authentication must be enabled. Check this page for reference https://msdn.microsoft.com/en-us/library/ms188670.aspx

b) Make sure your login account has access permission on the database you used during login ("Initial Catalog" in OLEDB).

c) Check the eventlog on your system see if there is more information

At last, please post question on our forum. More people could help you over there. When you post question, you can refer to this link and indicate you see failure at which step. The most important things for us to troubleshoot are a) exact error message and b) connection string.

Xinwei Hong, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

Comments

  • Anonymous
    June 02, 2008
    i'm using oledb connection. while deploying my application to client pc i can't connect to sqlserver 2005 developer ed. while from my pc (i have vb.net 2003) i'm connecting error message [DBNETLIB][Connection Open(Connect()).]SQL Server does not exist or access denied

  • Anonymous
    June 11, 2008
    In SQL server the default instance has a listener which listens on the fixed port which is TCP port 1433.

  • Anonymous
    June 12, 2008
    I am not able to connect to SQL 2005 DB in windows authentication mode remotly from web application. Is it required to configure kerberos auhentication? What could be the cause of this?

  • Anonymous
    June 27, 2008
    Hi!... I have this configuration: 1 SQL Server 2000 Enterprise Edition mounted on a Windows 2003 Server (wich we will call Server A). SQL Server is listening trough port 1433 1 Windows 2003 Server (wich we will call Server B) Both Servers are on the same network group What I need is to create an SQL Server System DSN to connect from B to a SQL Server Database located in A. When I do This i get the following error: [DBNETLIB]SQL Server does not exist or access denied [DBNETLIB]ConnectionOpen (Connect()). If I try to use the osql command, everytime i get the same error... What might be causing this????

  • Anonymous
    June 30, 2008
    Hi, I am having below error in my production server that running ASP.NET2.0 and SQL Server 2005. Can someone tell me why this error happen? Thanks. Source = .Net SqlClient Data Provider Error = A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - Not enough storage is available to complete this operation.) |    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)   at System.Data.SqlClient.SqlConnection.Open()

  • Anonymous
    July 17, 2008
    Thank for Help on Step 2, it seems SQL Express defaults these all to off. SO remote access doesnt work.

  • Anonymous
    July 22, 2008
    I am having occasional/rare connection problems with ADO/ADO .Net connection pooling. The connections use aliases set up for TCP/IP. Could the problems be occurring because of Kerberos Ticket Expiration with the pooled connections or could it be that SQL Server is Orphaning the pooled connections or could it be some sort of socket problem? Perhaps someone has another suggestion as to what may be wrong. I am considering using Named Pipes instead to get around Kerberos authentication.

  • Anonymous
    July 23, 2008
    In my case, the SQL application slows down to a crawl when the customer loses his internet service. When the service was restored by the provider, it started working like is should. Any thoughts . .  .

  • Anonymous
    July 23, 2008
    Harvey, it's probably Windows Authentication and/or SSL handshaking are tring to connect the DC or some network entity. For all other guys, some are general cases. Please ask questions in the forum so that somebody can help you troubleshooting. We need more detailed info about the failure and its circumstance!!! Thanks. Xinwei

  • Anonymous
    August 20, 2008
    I've also found that running a quick trace to catch login failures is useful. App teams generally don't believe that their app is configured wrong. They will insist that the server is down even though all connectivity tests we use work. We will start the trace and have them try to connect.  If you don't see a failure, you can absolutely point to a problem outside of MSSQL.  It sometimes takes this to get folks to check other possibilities.

  • Anonymous
    August 29, 2008
    I'm having an issue connectiont to SQL server through Access.  It only occurs during testing when we set the PC date forward on the client machine.  Has anyone come accross this? ErrorMsg:  -2147467259 Cannot generate SSPI Context Thanks

  • Anonymous
    September 09, 2008
    We're seeing an issue in our environment where we have a .NET 1.1 web application on a Windows 2003 server machine and SQL Server on a Windows 2000 server machine.  In the application, we use SQL logins to connect to the db.  What we are seeing is, when we put a bad password to log in, an error message is generated (login failed) in the event log which is what's expected, but then we continually see the same error message repeating for the next few hours as if the connection is still alive and retrying automatically.  Any ideas why?  Thanks

  • Anonymous
    November 19, 2008
    The comment has been removed

  • Anonymous
    December 18, 2008
    I just installed MSSQL 2008 Server on my laptop XP SP3 for evaluation purposes. All SQL services start except for the engine. I get the following message in event viewer. SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required. When I research this I get lots of different things but none seems to help my issue. Thanks in advance for any help.

  • Anonymous
    December 19, 2008
    Please help to find the solution to problem. We used MSSQL 2000 without any problems with ODBC , and now we tried to use MSSQL2008. Approximately on every fifth PC we cannot set the ODBC connection with SQL server, we receive error logs : SQL State '1000' SQL Server error 10060 SQL State '08001' SQL server error 17 we tried everything, it seems that on some clients something missing, but I have no idea what is this. The clients MSSQL ODBC version : 03.85.1132 with this version on one PC it is working, on the pother isn't. I tried to turn of the firewall : no effect. What to do ?

  • Anonymous
    December 19, 2008
    SandorVigh, error 10060 is: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. This still looks like a firewall issue if the server name is correct. Did you tried to follow my steps to troubleshoot? Is your server machine Vista/Windows Server 2008? Turning off the firewall on Vista/W2k8 is little tricky as it involves different domains. I would suggest you post your follow up question on our forum (mentioned at the end of the blog) Thanks, Xinwei

  • Anonymous
    December 19, 2008
    dmickel, Can you post a question on our forum and post the info in SQL Server Errorlog file? Thanks.

  • Anonymous
    March 16, 2009
    Hi I am getting an error : "Message:[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ". Just to brief about my setup , It goes like this;I have a SQL server 2008 installed on Win 2008 (x64)and I also have a clinet machine installed with Win 2003(32-bit). Now I am trying to establish a connectivity between them by using SNAC tool (v10.0). Actually I am running one benchmark application script on Client machine which first tries to establish the database connectivity . Now I think some one can give me some clue what could be the reason for the error.I also have created Aliases on both server as well as Client machine (Was not very sure where they required to be created). I have been strugling all alone for quite a time now.Hope someone can help me to reach at the solution. Thanks & Regards, SM.

  • Anonymous
    April 01, 2009
    Hi I am getting an error : "[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied" While accessing SQL Server 7.0 from a MS Access 2007 application. My client m/c OS: Windows XP Service Pack 2. The same access application is working on other desktop (XP SP2) in the same network. I have performed the following steps, but no hope. #1: I found sqloledb.rll file was missing, i placed the above resource file in appropriate location. No luck. #2: Tried repairing MDAC from INF folder, no luck. Any suggestion? Thank you in advance.

  • Anonymous
    May 21, 2009
    The comment has been removed

  • Anonymous
    August 25, 2009
    Hello, I seem to be in deep trouble over a linked server setup. I have 2 servers running SQL server 2005 standard x64 SP3. I am trying to create a linked server from one to another. I createa link server and map a login called testuser2 (sql login) on both servers, and has sysadmin permissions. However, after running sp_addlinkedserver and sp_addlinkedsrvlogin, if I attempt running a query or run "Test Connection" the query times out or gives an error " login failed for NT AUTHORITYANYONYMOUS LOGON..with the client name. If I check in the server logs (to which I was trying to query ), it gives me an error   Error: 18456, Severity: 14, State: 11. I tried pinging and doing an nslookup from client machine and it succeeds. These are servers on same domain and in the same location. I have also ensured that both servers have named pipes enabled on them.. I also sometimes get error 7399. Linked server authentication failed, even through I can connect remootely through the same login 'testuser2' on either server. Any help would be appreciated. Regards Akhil

  • Anonymous
    August 26, 2009
    Akhil, Can you check this blog see if it can solve your problem? http://blogs.msdn.com/sql_protocols/archive/2006/08/10/694657.aspx Thanks. Xinwei

  • Anonymous
    August 27, 2009
    Hi, We have some erratic performance with our .net app which uses connection pooling and has a VERY high throughput to our SQL Server 2005 database. We were wondering when is it appropriate to configure an additional port for SQL Server to listen on. There are NO error messages in the SQL Server log nor in the client logs indicating a particular problem, but netstat reports a high number of TCP failed connections. TCP Statistics for IPv4  Active Opens                        = 690858  Passive Opens                       = 140956  Failed Connection Attempts          = 650737    Reset Connections                   = 6829  Current Connections                 = 24  Segments Received                   = 2971348717  Segments Sent                       = 1947969915  Segments Retransmitted              = 5448550 Note our SQL Server version string is: Microsoft SQL Server 2005 - 9.00.4035.00 (X64)   Nov 24 2008 16:17:31   Copyright (c) 1988-2005 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) The server is a cluster using ipv4 and listening on 1433. Thank you, -Larry

  • Anonymous
    October 14, 2009
    Sometimes the port is not 1433 Look in the registry using regedit.exe at HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerSQLEXPRESSMSSQLServerSuperSocketNetLibTcp. One of the nameValue pairs has name TcpPort and a value, which is the port that the SQL Server is listening on (mine was set to 1030).

  • Anonymous
    November 05, 2009
    Hai, We have 2008 Server & SQL 2008. Networking load balancing also has been installed. for 6 ips and virtual ip is 192.168.1.100 Nat policy has been created in sonicall to route the static ip to local ip. Now i am trying to conect the odbc it say server does not exist. What must be the issue please help me. Thanks & REgards S. Balakrishnan

  • Anonymous
    November 05, 2009
    Hai We have 2008 Server & SQL 2008 Networking Load Balance has been configured the virual ip is 192.168.1.100 Nat policy has been created throguh sonicwall to this ip from the public ip (static Ip). Now i am strying to connect the odbc. it says server does not exist Please help me to trouble shoot Thanks S. Balakrishnan edp@rajparkchennai.com

  • Anonymous
    December 09, 2009
    The comment has been removed

  • Anonymous
    December 22, 2009
    I installed sql server 2005 (dev) I have a java program which takes connection from database connection string is : "jdbc:sqlserver://localhost:1434;databaseName=abc" when i ru this iit works fine. I modified the code now it takes connection and with out closing it tries to take another connection second time it throws an exception msg saying:: "An I/O error occurred while receiving the TDS prelogin response."   I thought its because of maximum no of connection but maximum no of conn is  set to 0(ulimited). please help mee  

  • Anonymous
    December 30, 2009
    What version of the driver you are using?

  • Anonymous
    January 07, 2010
    Hi Ashu, SQL Server uses port TCP/1434 for Dedicated Administrator Connections (see http://msdn.microsoft.com/en-us/library/ms189595.aspx). One of the restrictions with Dedicated Administrator Connections is: "To guarantee that there are resources available for the connection, only one DAC is allowed per instance of SQL Server. If a DAC connection is already active, any new request to connect through the DAC is denied with error 17810." That is why only the first connetion succeeds. Regards, --David Olix [SQL Server]

  • Anonymous
    February 03, 2010
    Currently we have installed Windows operating server 2008 and SQL server 2008 and now i want to connect server and workstation,unfortunately im unable to see SQL SERVER native client 10.1 at in ODBC connectivity.If i select SQL SERVER then it's prompting me "Login user failure :ABCServerGuest" in ODBC section.

  1. do i need to install any package to all workstation/client pc?
  2. Can i connect directly using SQL Server setting to connect to server and database? Advise needed
  • Anonymous
    February 03, 2010
    The comment has been removed

  • Anonymous
    February 03, 2010
    The comment has been removed

  • Anonymous
    February 05, 2010
    I already installed the SQL Server Native Client 10.1 at client pc and while im connecting it prompt me error message " Login Failed for user "SERVERGUEST" WHY? Urgently help needed. tks

  • Anonymous
    February 07, 2010
    The comment has been removed

  • Anonymous
    March 17, 2010
    This link was very useful. Thanks a lot

  • Anonymous
    May 09, 2010
    The comment has been removed

  • Anonymous
    May 09, 2010
    • please help me out. I traced it, but I didn't find the character (I didn't write the character '-'). I ran my app on different computers, there's no problem with my app. I reformatted my computer and reinstalled all the programs, it didn't work. It still had that error... Can someone tell me what's wrong with my application (or computer)?? Note: I'm using VB6 for the interface and SQLServer 2000 for the database and crystal report for report view. the error occurs when view reports using crystalr report.

  • Anonymous
    October 04, 2010
    Nice compilation.. This saved me today!

  • Anonymous
    January 24, 2011
    I have 2 SQL 2005 instances installed on a 2 node w2008 cluster.  Mgt Studio can connect  from XP client, but not from Windows 7 client.   ...suggestion?

  • Anonymous
    October 11, 2011
    Nice One. :) Thanks. Really helped me...

  • Anonymous
    October 27, 2011
    I am facing guest Login error when connecting to remote database running winxp pofessional sp3 with sqlserver express 2005. please help me to understand this & resolve this. hoping earnest reply.

  • Anonymous
    February 11, 2012
    Intermittent connectivity issues between application servers and sql cluster , i have 3 application servers are on NLB and 2 database severs  configured on SQL cluster [SQL 2005] . i am facing a intermittent connectivity issues with one of the application server (in NLB) to the db cluster . If anybody faced like this scenario before please let me know the resolution . Your  advises is highly appreciable.........

  • Anonymous
    July 12, 2012
    Thanks, was able to fix the Firewall issue!

  • Anonymous
    July 28, 2012
    i am using windows server 2008 r2 64 bit operating system and i've installed sql server 2008 standard edition 32 bit in that.  my application is working properly in server system . but, while accessing from client its not working properly. so, i've tested with .udl at client machine . it's raising an error as   [DBNETLIB][Connection Open(Connect()).]SQL Server does not exist or access denied. i was using xp2 in client machine. please give me the solution so that i can start the work at client side.

  • Anonymous
    September 05, 2012
    i right click on data connection & select create new sql connection & type my server name & type something my database name & click on ok then it give error 40

  • Anonymous
    November 21, 2012
    The comment has been removed

  • Anonymous
    October 03, 2013
    The comment has been removed

  • Anonymous
    February 23, 2014
    Hi - I set up a test and production instance SQL Server 2008 R2 Express. The test I installed on the default c: drive and works fine.  The production I installed the data on the e: drive and I can't get to it.  However the application works fine from the production server.  Any Ideas?

  • Anonymous
    March 28, 2014
    I am not able to connect to SQL 2005 DB in windows authentication,plz help me out...i'm gtng an error as follows.... ADDITIONAL INFORMATION: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid) (Microsoft SQL Server, Error: 87) For help, click: ht

  • Anonymous
    May 09, 2014
    Changing name on the server after installing MSSQL-server was my problem. Uninstalling MSSQL and reinstalling it solved the problem. 12h testing there for you guys. :-)

  • Anonymous
    August 28, 2014
    The comment has been removed

  • Anonymous
    October 25, 2014
    TITLE: Connect to Server


Cannot connect to MOHAMED-PC.

B

  • Anonymous
    November 30, 2014
    Hi, I need urgent help here. Scenario:
  1. Windows 7,
  2. SQL Server 2000 setup successfully installed with Sql Server Authentication.
  3. Created two users for Sql authentication. Given permission to my tables for both
  4. I want to run my application using vb6 on two clients machines A, B.
  5. Test connection is OK on both clients A and B
  6. Problem is simple, when i login from my A client system, it very easily login to my application main menu when i enter login name and passsword.
  7. But when i try to login from B client system, then after getting username and password, it does not show application Main menu hang on and time out expire msg listed later.
  8. and when log out from my first A system, and then try to login from B, then it easily go through and show App main menu and vice versa......???? Plz help me soonnnnnnnnnnnn...waiting thanks
  • Anonymous
    December 10, 2014
    Hi I am using mixed mode authentication still we are getting Error: 18456, Severity: 14, State: 58. Please help on this

  • Anonymous
    December 10, 2014
    Hi We are getting Error: 18456, Severity: 14, State: 58. Mysql server is 2008r2 and it is configured with mixed mode. Still users are not able to connect sql server, ould you please help on this

  • Anonymous
    December 15, 2014
    Thanks for the article. I was trying hard to follow the instruction on other tutorials. Your's is the only one mentioning the necessity of SQL Server Browser running. :) Saved me further headaches.

  • Anonymous
    February 12, 2015
    SQL Server was not accessible from the requesting machine. how we make the 2 machine communicate

  • Anonymous
    March 25, 2015
    Error: Error locating server/instance specified It works for some users and don't for few.

  1. When the exe is copied to local drive (C: or O:) and launched from local drive, exe is able to connect to MS SQL database and the process works fine.
  2. When the network path of exe location is mapped to a drive locally (say P ) and exe is launched from P: that doesn’t work (fails connecting to MS SQL database).
  3. When the exe is launched from network path it never worked. Exe is in .net , Connectstring uses SQL auth.