Sql error 26 visual studio

User-605499000 posted

User-605499000 posted

Hi 

Below is the error message and also the web config.  I am using visual studio 2019 as.net c#.  I had to upgrade the sql and they changed the Jen19.mdf to Jen19.mdf1. Should I delete the old mdf and change the new one to just mdf.  Also in
the old web config they had a line listing the SQl and there was a mdf listed. I don’t have that in the new web config.  Should I? The mdf1 file has the products listed in it.  

Thanks, Jen

Server Error in ‘/’ Application.


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: 26 — Error Locating Server/Instance Specified)

Description: An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: 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: 26 — Error Locating Server/Instance Specified)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Web config:

<?xml version=»1.0″ encoding=»utf-8″?>
<!—
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
—>
<configuration>
<configSections>
<!— For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 —>
<section name=»entityFramework» type=»System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ requirePermission=»false» />
</configSections>
<system.web>
<compilation debug=»true» targetFramework=»4.7.2″ />
<httpRuntime targetFramework=»4.7.2″ />
<pages>
<namespaces>
<add namespace=»System.Web.Optimization» />
</namespaces>
<controls>
<add assembly=»Microsoft.AspNet.Web.Optimization.WebForms» namespace=»Microsoft.AspNet.Web.Optimization.WebForms» tagPrefix=»webopt» />
</controls>
</pages>
<customErrors mode=»Off» defaultRedirect=»ErrorPage.html»>
</customErrors>
<profile defaultProvider=»DefaultProfileProvider»>
<providers>
<add name=»DefaultProfileProvider» type=»System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ connectionStringName=»DefaultConnection» applicationName=»/» />
</providers>
</profile>
<membership defaultProvider=»DefaultMembershipProvider»>
<providers>
<add name=»DefaultMembershipProvider» type=»System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ connectionStringName=»DefaultConnection» enablePasswordRetrieval=»false»
enablePasswordReset=»true» requiresQuestionAndAnswer=»false» requiresUniqueEmail=»false» maxInvalidPasswordAttempts=»5″ minRequiredPasswordLength=»6″ minRequiredNonalphanumericCharacters=»0″ passwordAttemptWindow=»10″ applicationName=»/» />
</providers>
</membership>
<roleManager defaultProvider=»DefaultRoleProvider»>
<providers>
<add name=»DefaultRoleProvider» type=»System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ connectionStringName=»DefaultConnection» applicationName=»/» />
</providers>
</roleManager>
<!—
If you are deploying to a cloud environment that has multiple web server instances,
you should change session state mode from «InProc» to «Custom». In addition,
change the connection string named «DefaultConnection» to connect to an instance
of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express.
—>
<sessionState mode=»InProc» customProvider=»DefaultSessionProvider»>
<providers>
<add name=»DefaultSessionProvider» type=»System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ connectionStringName=»DefaultConnection» />
</providers>
</sessionState>
</system.web>
<runtime>
<assemblyBinding xmlns=»urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=»Antlr3.Runtime» publicKeyToken=»eb42632606e9261f» />
<bindingRedirect oldVersion=»0.0.0.0-3.5.0.2″ newVersion=»3.5.0.2″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»Newtonsoft.Json» publicKeyToken=»30ad4fe6b2a6aeed» />
<bindingRedirect oldVersion=»0.0.0.0-12.0.0.0″ newVersion=»12.0.0.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»WebGrease» publicKeyToken=»31bf3856ad364e35″ />
<bindingRedirect oldVersion=»0.0.0.0-1.6.5135.21930″ newVersion=»1.6.5135.21930″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»Microsoft.Owin» publicKeyToken=»31bf3856ad364e35″ culture=»neutral» />
<bindingRedirect oldVersion=»0.0.0.0-4.0.1.0″ newVersion=»4.0.1.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»Microsoft.Owin.Security.OAuth» publicKeyToken=»31bf3856ad364e35″ culture=»neutral» />
<bindingRedirect oldVersion=»0.0.0.0-4.0.1.0″ newVersion=»4.0.1.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»Microsoft.Owin.Security» publicKeyToken=»31bf3856ad364e35″ culture=»neutral» />
<bindingRedirect oldVersion=»0.0.0.0-4.0.1.0″ newVersion=»4.0.1.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=»Microsoft.Owin.Security.Cookies» publicKeyToken=»31bf3856ad364e35″ culture=»neutral» />
<bindingRedirect oldVersion=»0.0.0.0-4.0.1.0″ newVersion=»4.0.1.0″ />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<providers>
<provider invariantName=»System.Data.SqlClient» type=»System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer» />
</providers>
<defaultConnectionFactory type=»System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework»>
<parameters>
<parameter value=»mssqllocaldb» />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<connectionStrings>
<add name=»DefaultConnection» providerName=»System.Data.SqlClient» connectionString=»Data Source=.SQLEXPRESS;Initial Catalog=aspnet-Jen19-20190804123356;Integrated Security=SSPI» />
</connectionStrings>
<system.codedom>
<compilers>
<compiler language=»c#;cs;csharp» extension=».cs» type=»Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ warningLevel=»4″
compilerOptions=»/langversion:default /nowarn:1659;1699;1701″ />
<compiler language=»vb;vbs;visualbasic;vbscript» extension=».vb» type=»Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″
warningLevel=»4″ compilerOptions=»/langversion:default /nowarn:41008 /define:_MYTYPE=&quot;Web&quot; /optionInfer+» />
</compilers>
</system.codedom>
</configuration>

  • Remove From My Forums
  • Question

  • Hi,

    After installing Visual Studio 2008 on a Windows XP system, I:

    • Create a new project of Windows form;
    • Under Data Sources tab, click Add New Data Source…;
    • Select Database, then next;
    • Click New Connection… button;
    • Select Miscrosoft SQL Server Database File as data source;
    • Key in test as Database file name, then click OK and Yes for the create dabase question;
    • Then I get an error message saying, 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: 26 — Error Locating Server/instance Specified)

    I can’t understand what does that meaning.  Could somebody advise.

    Thanks

    Sanping

    • Moved by

      Tuesday, October 11, 2011 2:30 PM
      Moving to a more appropriate forum (From:.NET Framework inside SQL Server)

    • Moved by
      Andrew.Wu
      Thursday, October 13, 2011 6:33 AM
      (From:Visual Studio Database Development Tools (Formerly «Database Edition Forum»))

Answers

  • Hi Sanping,

    Creating a SQL Server database with Microsoft SQL Server Database File requires an instance of SQL Server Express instance installed. The error message indicates that it cannot find the instance.

    Do you have a SQL Server Express instance running on your machine? If yes, please check if the instance service is running.

    SQL Server Express is usually installed as a named instance. Please navigate to
    All Programs -> Microsoft SQL Server 2008 -> Configuration Tools
    -> SQL Server Configuration Manager, expand
    SQL Server 2008 Services
    , see if the instance is running and check the SQL Server instance name, like «SQLEXPRESS».

    After that, please open Visual Studio, go to Tools ->
    Options
    , check Show all setting, click Database Tools
    -> Database Connections and see if “SQL Server Instance Name” is the same as the instance name in the previous step. If not, type the correct instance name we got and press
    OK to save the changes.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Get or Request Code Sample from Microsoft
    If you have any feedback, please tell us.

    • Marked as answer by
      Sanping Li
      Monday, October 17, 2011 3:14 AM


First published on MSDN on May 13, 2007

Users often see this error message when connection to a SQL Server and don’t know where to start to solve the problem. In most forums, people says this is because remote connection is not enabled on the server. This is not exactly correct. Actually, this error message give customers very specific information and the solution is quite simple.

First of all, you get this error message only if you are trying to connect to a SQL Server named instance. For default instance, you never see this. Why? Because even if we failed at this stage (i.e. error locating server/instance specified), we will continue to try connect using default values, e.g defaul TCP port 1433, default pipe name for Named Pipes. You may see other error message due to failure later, but not this error message.

Every time client makes a connection to SQL Server named instance, we will send a SSRP UDP packet to the server machine UDP port 1434. We need this step to know configuration information of the SQL instance, e.g., protocols enabled, TCP port, pipe name etc. Without these information, client does know how to connect the server and it fails with this specified error message.

In a word, the reason that we get this error message is the client stack could not receive SSRP response UDP packet from SQL Browser. It’s easy to isolate the issue. Here are the steps:

1) Make sure your server name is correct, e.g., no typo on the name.

2) Make sure your instance name is correct and there is actually such an instance on your target machine.

[Update:

Some application converts to . If you are not sure about your application, please try both ServerInstance and ServerInstance in your connection string

]


3) Make sure the server machine is reachable, e.g, DNS can be resolve correctly, you are able to ping the server (not always true).

4) Make sure SQL Browser service is running on the server.

5) If firewall is enabled on the server, you need to put sqlbrowser.exe and/or UDP port 1434 into exception.

Once you are done the steps, you should not see this error message anymore. You may still fail to connect your SQL server, but error message should be different and you have a different issue now. [

Update:

If it still fails, you may replace serverinstance with tcp:serverinstance and/or np:serverinstance and see if it succeeds with either TCP or NP protocol. That way, you can isolate the issue a little bit. ]

There is one corner case where you may still fail after you checked step 1)-4). It happens when a) your server is a named instance on cluster or on a multi-homed machine, and b) your client is a Vista machine with Firewall on. I have explained the details at:

Unable to connect to a SQL Server named instance on a cluster

[

Update May 2009

] My collegue found a good tool online which could be very helpful for users to isolate issues related to this error message. You can download PortQry from

http://support.microsoft.com/kb/832919

, run «portqry.exe -n yourservername -p UDP -e 1434». If this command returns information and it contains your target instance, then you can rule out possiblity 4) and 5) above, meaning you do have a SQL Browser running and your firewall does not block SQL Browser UDP packet. In this case, you can check other issue, e.g. wrong connection string.

As a final note, the error message for the same issue when you use SNAC is:

[SQL Native Client]SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].


If you still see this error, please post questions at MSDN


SQL Server Data Access Forum:


http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=87&SiteID=1

Please mention you already read this post and confirm steps you have taken and the results of each step.(e.g. serverinstance,etc)

Xinwei Hong, SQL Server Protocols

Disclaimer: This posting is provided «AS IS» with no warranties, and confers no rights

When attempting to connect to a Sql Server instance over the network, with named instances, SqlConnection throws error 26 on .NET Core with the SqlClient nuget library.

Sample Code

using System;
using System.Data.SqlClient;
namespace ConsoleApp1 {
    class Program {
        static void Main(string[] args) {
            var sqlString = "Data Source=192.168.0.3\SQLEXPRESS;Initial Catalog=Database;User ID=sa;Password=<password>";
            var conn = new SqlConnection(sqlString);
            conn.Open();
            conn.Close();
            Console.WriteLine("Hello World!");
        }
    }
}

This sample code was tested working on .NET 4.5 and 4.6.1, but breaks on .NET Core 2.0, 1.1 and 1.0, along with versions 4.4, 4.3, and 4.1 of the System.Data.SqlClient library on nuget. I’ve been able to only reproduce this on Windows.

The server is configured for remote access as I’m able to connect to the remote instance using the same sample code full .NET Framework. The expected output should just be Hello World! and the program terminating, which happens on the full framework. However the following exception gets thrown instead on .NET Core:

System.Data.SqlClient.SqlException occurred
  HResult=0x80131904
  Message=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: 26 - Error Locating Server/Instance Specified)
  Source=Core .Net SqlClient Data Provider
  StackTrace:
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at TestSqlAccess.Program.Main(String[] args) in C:srcPlaneStatusTestSqlAccessProgram.cs:line 9

Temporary Workaround

I figured out for now was using hostname,port instead of the hostname\instance works and connects as intended, however I’d like to use a named instance instead of having to rely on ports.

This workaround does not work for Linux, at least according to my tests, as it throws other exceptions even with this workaround, mostly being able to not connect. I haven’t checked Mac since I don’t have access to one.

Methods to Resolve SQL Server Error 26

Users often see “SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified” error message while connecting to SQL Server.

SQL Server Error 26

SQL Server Error 26 occurs when users trying to connect to a SQL Server named instance. The reason of the SQL Server Error 26 is the client stack could not receive SSRP response UPD packet from SQL Browser.

Tip: Fix SQL Server Management Studio Error 40

You have to create an incoming rule that allows traffic from all promising IP addresses that are configured for the failover cluster instance and from all possible IP addresses of the remote server. For this you have to follow the below steps

    • Open Adminstrative Tools, from Control Panel
    • In Adminstrative Tools, click on Windows Firewall with Advanced Security
    • Under Windows Firewall with Advanced Security on Local Computer column, click on the Inbound Rule and then select New Rule from the right pane

Windows Firewall with Advanced Security

    • From New Inbound Rule Wizard window, select Custom and then click on the Next button

Select Custom

    • Under Does this rule apply to all programs or a specific program? select All programs then click on Next button

Select All Program

    • Form Protocol type list, select Any and then click on Next button

Select Protocol Type

    • Under Which remote OP addresses does this rule apply to? select These IP addresses and then click on Add button

Select These IP Addresses

    • In IP Address dialog box, under This IP address or subnet type the IP address and then click on Ok button

IP Address

    • Under What action should be taken when a connection matches the specified conditions? select Allow the connection and then click on Next button

Allow the connection

  • Click on the Next button to complete the New Outbound Rule Wizard steps

Other Possible Causes of SQL Server Error 26 with Solution

SQL Server does not allow remote connections

  • To resolve the SQL Server Error 26 open SQL Server Management Studio, Right click on the database and select properties
  • On Security page, select SQL Server and Windows Authentication mode and click on Ok button
  • Restart SQL Server

If you are still facing the SQL Server Error 26, then there could be a same name conflict between two systems. Check whether the computer name, system name is same if yes, then try to system using its IP address.

Содержание

  1. При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром
  2. Сообщения об ошибках
  3. «При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения».
  4. «SQL Server не существует, либо в доступе к нему отказано»
  5. Сбор сведений для устранения ошибки
  6. Вариант 1. Использование средства проверки SQL для сбора необходимых сведений
  7. Вариант 2. Сбор данных по отдельности с помощью следующих процедур
  8. Получение имени экземпляра из диспетчера конфигурации
  9. Получение IP-адреса сервера
  10. Получение TCP-порта экземпляра
  11. Шаг 1. Проверка выполнения экземпляра
  12. Вариант 1. Использование выходного файла средства SQLCheck
  13. Вариант 2. Использование диспетчера конфигурации SQL Server
  14. Вариант 3. Использование команд PowerShell
  15. Шаг 2. Проверка запуска службы обозревателя SQL Server
  16. Вариант 1. Использование выходного файла средства SQLCheck
  17. Вариант 2. Использование диспетчера конфигурации SQL Server
  18. Шаг 3. Проверка имени сервера в строке подключения
  19. Шаг 4. Проверка псевдонимов на клиентских компьютерах
  20. Вариант 1. Использование выходного файла средства SQLCheck
  21. Вариант 2. Проверка наличия псевдонимов в диспетчере конфигурации SQL Server
  22. Вариант 3. Проверка наличия псевдонимов в служебной программе клиентской сети SQL Server
  23. Шаг 5. Проверка конфигурации брандмауэра
  24. Экземпляр по умолчанию SQL Server
  25. Именованный экземпляр SQL Server
  26. Шаг 6. Проверка включенных протоколов в SQL Server
  27. Вариант 1. Использование выходного файла средства SQLCheck
  28. Вариант 2. Использование диспетчера конфигурации SQL Server
  29. Шаг 7. Проверка подключения по протоколу TCP/IP
  30. Шаг 8. Проверка локального подключения
  31. Шаг 9. Тестирование удаленного подключения

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром

Применяется к: SQL Server

При подключении к экземпляру SQL Server может возникнуть одно или несколько сообщений об ошибках, приведенных ниже. В этой статье приводятся некоторые шаги по устранению этих ошибок, которые предоставляются в порядке от простых до сложных.

Сообщения об ошибках

Полные сообщения об ошибках зависят от клиентской библиотеки, используемой в приложении и серверной среде. Вы можете просмотреть приведенные ниже сведения, чтобы узнать, возникает ли одно из следующих сообщений об ошибке:

«При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения».

Provider: Поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server (Microsoft SQL Server, ошибка: 53) При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения.
поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server (Microsoft SQL Server, ошибка: 53)
поставщик: поставщик TCP, ошибка: 0 — данный узел неизвестен. (Microsoft SQL Server, ошибка: 11001)

поставщик: сетевые интерфейсы SQL, ошибка: 26 — ошибка при обнаружении указанного сервера или экземпляра При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения.
поставщик: сетевые интерфейсы SQL, ошибка: 26 — ошибка при обнаружении указанного сервера или экземпляра

Истекло время ожидания входа Ошибка канала передачи данных в клиенте Native Client SQL Server
[Microsoft SQL Server Native Client 10.0]: истекло время ожидания входа
[Microsoft SQL Server Native Client 10.0]: при установке подключения к SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и убедитесь, что SQL Server разрешает удаленные подключения. Дополнительные сведения см. в электронной документации по SQL Server.
[Microsoft SQL Server Native Client 10.0]: SQL Server сетевые интерфейсы: ошибка при обнаружении указанного сервера или экземпляра [xFFFFFFFF].

Сбой попытки подключения из-за того, что подключенная сторона не ответила должным образом по истечении определенного периода времени, или сбой установленного подключения из-за того, что подключенный узел не смог ответить При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения.
поставщик: поставщик TCP, ошибка: 0
Произошел сбой при попытке подключения, поскольку истекло время ожидания ответа от подключаемой стороны, либо произошел сбой уже установленного подключения, поскольку подключенный узел не ответил.
Microsoft SQL Server, ошибка: 10060

Provider: поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения.
поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server
Microsoft SQL Server, ошибка: 53
Не найден сетевой путь

[Майкрософт] [SQL Server Native Client 11.0]Поставщик TCP: не удалось подключиться, так как целевой компьютер активно отказался от него Ошибка канала передачи данных в клиенте Native Client SQL Server
[Microsoft][Клиент Native Client SQL Server 11.0]Поставщик TCP: подключение не установлено, т.к. конечный компьютер отверг запрос на подключение.
[Microsoft][Клиент Native Client SQL Server 11.0]Истекло время ожидания входа.
[Microsoft][Клиент Native Client SQL Server 11.0]При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и убедитесь, что SQL Server разрешает удаленные подключения. Дополнительные сведения см. в электронной документации по SQL Server.

«SQL Server не существует, либо в доступе к нему отказано»

Эта ошибка обычно означает, что клиенту не удается найти экземпляр SQL Server. Эта проблема возникает по одной из следующих причин:

  • Неверное имя компьютера, на котором размещен SQL-сервер.
  • Экземпляр не разрешает правильный IP-адрес.
  • Номер TCP-порта указан неправильно.

Сведения об устранении неполадок с подключением в сценариях высокой доступности см. в следующих статьях:

Сбор сведений для устранения ошибки

Рекомендуется собрать сведения, перечисленные в этом разделе, с помощью одного из приведенных ниже вариантов, прежде чем продолжить выполнение фактических действий по устранению ошибки.

Вариант 1. Использование средства проверки SQL для сбора необходимых сведений

Если вы можете войти локально на компьютер SQL Server с правами администратора, используйте средство SQLCheck из репозитория GitHub «Microsoft SQL Networking». Это средство предоставляет большую часть сведений, необходимых для устранения неполадок в одном файле. Дополнительную информацию об использовании средства и собираемых сведениях см. на домашней странице средства. Вы также можете проверить рекомендуемые предварительные требования и страницу контрольного списка.

Вариант 2. Сбор данных по отдельности с помощью следующих процедур

Получение имени экземпляра из диспетчера конфигурации

На сервере, на котором размещается экземпляр SQL Server, используйте диспетчер конфигурации SQL Server для проверки имени экземпляра:

Диспетчер конфигурации устанавливается на компьютере автоматически при установке SQL Server. Инструкции по запуску диспетчера конфигурации немного различаются в зависимости от версий SQL Server и Windows. Дополнительные сведения для конкретной версии см. в разделе Диспетчер конфигурации SQL Server.

Войдите на компьютер, на котором размещается экземпляр SQL Server.

Запустите диспетчер конфигурации SQL Server.

В области слева выберите Службы SQL Server.

В области справа проверьте имя экземпляра ядра СУБД.

  • SQL SERVER (MSSQLSERVER) указывает экземпляр по умолчанию SQL Server. Имя экземпляра по умолчанию — компьютера.
  • SQL SERVER ( экземпляра) указывает именованный экземпляр SQL Server. Имя именованного экземпляра — компьютера экземпляра.

Получение IP-адреса сервера

Чтобы получить IP-адрес компьютера, на котором размещается экземпляр SQL Server, выполните следующие действия.

В меню Пуск выберите команду Выполнить. В окне Выполнить введите cmd и нажмите кнопку ОК.

В окне командной строки введите ipconfig/all и нажмите клавишу ВВОД. Запишите IPv4-адрес и IPv6-адрес.

SQL Server можно подключиться с помощью протокола IP версии 4 или 6. Ваша сеть может использовать обе версии.

Получение TCP-порта экземпляра

В большинстве случаев подключение к ядру СУБД на другом компьютере осуществляется с помощью протокола TCP. Чтобы получить TCP-порт экземпляра, выполните следующие действия:

Используйте SQL Server Management Studio на компьютере, на котором выполняется SQL Server, и подключитесь к экземпляру SQL Server. В обозревателе объектов последовательно разверните разделы Управление, Журналы SQL Server, а затем дважды щелкните текущий журнал.

В средстве просмотра журнала выберите Фильтр на панели инструментов. В поле Сообщение содержит текст введите сервер прослушивает, выберите Применить фильтр и нажмите кнопку ОК.

Должно быть указано сообщение, например Сервер прослушивает [любой ipv4 <> 1433].

Это сообщение указывает, что экземпляр SQL Server прослушивает все IP-адреса на этом компьютере (для протокола IP версии 4) и TCP-порт 1433. (TCP-порт 1433 обычно является портом, используемым ядром СУБД или экземпляром по умолчанию SQL Server. Только один экземпляр SQL Server может использовать этот порт. Если установлено несколько экземпляров SQL Server, некоторые экземпляры должны использовать другие номера портов.) Запишите номер порта, используемый экземпляром SQL Server, к которому вы пытаетесь подключиться.

  • Вероятно, указан IP-адрес 127.0.0.1. Он называется адресом адаптера замыкания на себя. Только процессы на одном и том же компьютере могут использовать IP-адрес для подключения.
  • Журнал ошибок SQL Server также можно просмотреть с помощью текстового редактора. По умолчанию журнал ошибок размещается в файлах Program FilesMicrosoft SQL ServerMSSQL.nMSSQLLOGERRORLOG и ERRORLOG.n. Для получения дополнительной информации см. раздел Просмотр журнала ошибок SQL Server.

Шаг 1. Проверка выполнения экземпляра

Вариант 1. Использование выходного файла средства SQLCheck

В выходных данных файла SQLCheck найдите текст «Сведения об SQL Server».

В разделе «Интересующие службы» найдите экземпляр SQL Server в столбцах Имя и Экземпляр (для именованных экземпляров) и проверьте его состояние с помощью столбца Запущено. Если значение равно True, службы запущены. В противном случае служба в настоящее время не запущена.

Если служба не запущена, запустите службу с помощью SQL Server Management Studio, диспетчера конфигурации SQL Server, PowerShell или приложения «Службы».

Вариант 2. Использование диспетчера конфигурации SQL Server

Чтобы убедиться, что экземпляр выполняется, выберите пункт Службы SQL Server в диспетчере конфигурации SQL Server и проверьте символ для экземпляра SQL Server.

  • Зеленая стрелка указывает, что экземпляр выполняется.
  • Красный квадрат указывает, что экземпляр остановлен.

Если экземпляр остановлен, щелкните его правой кнопкой мыши и выберите Запустить. Затем запускается экземпляр сервера, и индикатор становится зеленой стрелкой.

Вариант 3. Использование команд PowerShell

Чтобы проверить состояние служб SQL Server в системе, можно использовать следующую команду в PowerShell:

Вы можете использовать следующую команду для поиска в файле журнала ошибок определенной строки «SQL Server готов для клиентских подключений». Это сообщение является информационным; никаких действий пользователя не требуется».

Шаг 2. Проверка запуска службы обозревателя SQL Server

Этот шаг требуется только для устранения неполадок с подключением к именованным экземплярам.

Вариант 1. Использование выходного файла средства SQLCheck

В выходных данных файла SQLCheck найдите текст «Сведения об SQL Server».

В разделе «Интересующие службы» найдите службу SQLBrowser в столбце Имя и проверьте ее состояние с помощью столбца Запущено. Если значение равно «True», служба запущена. В противном случае служба в настоящее время не запущена, и ее необходимо запустить. Дополнительные сведения см. в разделе Запуск, остановка, приостановка, возобновление, перезапуск служб SQL Server.

Вариант 2. Использование диспетчера конфигурации SQL Server

Чтобы подключиться к именованному экземпляру, служба обозревателя SQL Server должна быть запущена. В диспетчере конфигурации SQL Server найдите службу обозревателя SQL Server и убедитесь, что она запущена. Если служба не запущена, запустите ее. Служба обозревателя SQL Server не требуется для экземпляров по умолчанию.

Дополнительные сведения об использовании службы обозревателя SQL Server в вашей среде см. в разделе Служба обозревателя SQL Server.

Дополнительные сведения об остановке и запуске служб SQL см. в разделе Запуск, остановка, приостановка, возобновление, перезапуск служб SQL Server.

Если в вашей среде служба обозревателя SQL Server не запущена, ознакомьтесь с разделом Подключение к именованному экземпляру сервера SQL без использования службы обозревателя SQL Server для получения дополнительной информации.

Шаг 3. Проверка имени сервера в строке подключения

При указании неправильного имени сервера в строке подключения часто возникают ошибки. Убедитесь, что имя сервера совпадает с именем сервера, извлеченным на предыдущих шагах.

Если вы используете средство SQLCheck, просмотрите значения NetBIOS-имя/полное доменное имя в разделе Сведения о компьютере выходного файла.

  • Примеры строк подключения см. в разделе Строки подключения SQL Server.
  • Подробные примеры см. в разделе Проверка концепции подключения к SQL с помощью ADO.NET в подразделе Главная страница для программирования клиента SQL.

Шаг 4. Проверка псевдонимов на клиентских компьютерах

Псевдонимы часто используются в клиентских средах при подключении к SQL Server с помощью альтернативного имени или при наличии проблем с разрешением имен в сети. Они создаются с помощью диспетчера конфигурации SQL Server или служебной программы клиентской сети. Неправильный псевдоним может привести к подключению приложений к неправильному серверу, что вызовет сбой. Используйте следующие способы, чтобы проверить наличие неправильных псевдонимов. Вы также можете использовать средство (например SQLCHECK) на клиентском компьютере для проверки псевдонимов и других параметров, связанных с подключением, на клиентском компьютере.

Следующие параметры применяются только к приложениям, которые используют клиент Native Client SQL Server для подключения к SQL Server.

Вариант 1. Использование выходного файла средства SQLCheck

В выходном файле SQLCheck найдите псевдонимы строк SQL. (Эта строка будет отображаться в разделе файла Безопасность клиента и сведения о драйвере)

Просмотрите записи в таблице. Если их нет, на компьютере отсутствуют псевдонимы. Если имеется запись, просмотрите сведения, чтобы убедиться, что для имени сервера и номера порта заданы правильные значения.

Пример выходных данных:
Псевдонимы SQL:

Выше показано, что prodsql является псевдонимом для SQL Server, вызываемого prod_sqlserver , который выполняется на порту 1430.

Вариант 2. Проверка наличия псевдонимов в диспетчере конфигурации SQL Server

  1. В диспетчере конфигурации SQL Server разверните узел Конфигурация собственного клиента SQL Server и выберите Псевдонимы.
  2. Проверьте, определены ли псевдонимы для сервера, к которому вы пытаетесь подключиться. Если псевдонимы существуют, выполните следующие действия:
    1. Откройте панель Свойства псевдонима.
    2. Переименуйте значение в поле Имя псевдонима (например, если имя сервера — MySQL, переименуйте его в MySQL_test) и повторите попытку подключения. Если подключение работает, псевдоним является неправильным и может быть указан в старой конфигурации, которая больше не нужна. Если подключение не работает, переименуйте псевдоним, вернув ему первоначальное имя, и перейдите к следующему шагу.
    3. Проверьте параметры подключения для псевдонима и убедитесь, что они верны. Следующие распространенные сценарии могут вызвать проблемы с подключением:

    Неправильный IP-адрес для поля Сервер. Убедитесь, что IP-адрес соответствует записи в файле журнала ошибок SQL Server.

    Неправильное имя сервера в поле Сервер. Например, псевдоним сервера указывает на правильное имя сервера. Однако подключения будут утеряны, если значение параметра имени сервера неверно.

    Неправильный формат имени канала (при условии, что используются псевдонимы именованных каналов).

    • При подключении к экземпляру по умолчанию с именем Mydefaultinstance имя канала должно быть \Mydefaultinstancepipesqlquery.
    • При подключении к именованным экземпляру MySQLNamed имя канала должно быть \MySQLpipeMSSQL$Namedsqlquery.

Вариант 3. Проверка наличия псевдонимов в служебной программе клиентской сети SQL Server

  1. Откройте служебную программу клиентской сети SQL Server, введя cliconfg.exe в окне команды «Выполнить».
  2. Выполните шаг 2 в разделе Вариант 2. Проверка наличия псевдонимов в диспетчере конфигурации SQL Server.

Шаг 5. Проверка конфигурации брандмауэра

Конфигурацию брандмауэра можно проверить в зависимости от экземпляра по умолчанию или именованного экземпляра.

Если вы используете брандмауэры сторонних производителей в сети, приведенные шаги по-прежнему применимы. Однако вам может потребоваться обратиться к администратору сети или изучить документацию по брандмауэру, чтобы получить дополнительные сведения о настройке брандмауэра для разрешения связи необходимых портов с SQL Server.

Экземпляр по умолчанию SQL Server

Экземпляр по умолчанию обычно выполняется через порт 1433. Некоторые установки также используют нестандартный порт (кроме 1433) для запуска экземпляров SQL. Брандмауэр может заблокировать любой порт. Для дальнейшей проверки номера порта выполните следующие действия:

  1. Определите порт, на котором выполняется экземпляр SQL, ознакомившись с информацией в разделе Получение TCP-порта экземпляра.

    Если SQL Server настроен на прослушивание порта 1433, убедитесь, что брандмауэры в сети между клиентом и сервером разрешают трафик через этот порт. Ознакомьтесь с разделом Настройка брандмауэра Windows для доступа к ядру СУБД и обратитесь к администратору сети для реализации необходимых решений.

    Если экземпляр по умолчанию SQL Server не использует порт 1433, попробуйте добавить номер порта SQL Server к имени сервера, используя формат ,

    , и проверьте, работает ли это. Например, имя экземпляра SQL, который выполняется на порту 2000, — MySQLDefaultinstance. Укажите имя сервера MySQLServer, 2000 и проверьте, работает ли это.

    Если это не работает, брандмауэр блокирует порт. Вы можете выполнить инструкции в разделе Настройка брандмауэра Windows для доступа к ядру СУБД или обратитесь к администратору сети, чтобы добавить порт в список исключений брандмауэра.

    • Если это работает, брандмауэр разрешает обмен данными через этот порт. Чтобы использовать номер порта и имя сервера в строке подключения приложения, необходимо изменить строку подключения.

Именованный экземпляр SQL Server

Если экземпляр SQL является именованным, его можно настроить для использования динамических или статических портов. В любом случае базовые сетевые библиотеки запрашивают службу обозревателя SQL Server, запущенную на компьютере SQL Server через UDP-порт 1434, чтобы перечислить номер порта для именованного экземпляра. Если брандмауэр между клиентом и сервером блокирует этот UDP-порт, клиентская библиотека не может определить порт (требование для подключения) и подключение завершается сбоем. Для проверки подключения воспользуйтесь одним из описанных ниже способов:

Способ 1. Проверьте подключение, указав номер порта в строке подключения.

Определите порт, на котором выполняется экземпляр SQL, ознакомившись с информацией в разделе Получение TCP-порта экземпляра.

Попробуйте подключиться к именованному экземпляру, используя номер порта, добавленный к имени сервера в формате ,

, и проверьте, работает ли это. Например, если имя экземпляра SQL — MySQLNamedinstance и он выполняется на порте 3000, укажите имя сервера MySQLNamedinstance,3000.

Если это работает, то брандмауэр блокирует UDP-порт 1434 или экземпляр скрыт от обозревателя SQL Server.

Если это не работает, возникла одна из следующих причин:

Заблокирован UDP-порт 1434 или статический порт, либо оба порта. Чтобы убедиться, что заблокирован UDP-порт или статический порт, используйте Portqry.

Экземпляр скрыт от службы обозревателя SQL Server.

Способ 2. Проверьте подключение с помощью средства PortQryUI.

Используйте средство PortQryUI с именованным экземпляром и просмотрите полученные выходные данные. Может отобразиться сообщение о том, что UDP-порт 1434 фильтруется. Это сообщение указывает, что порт заблокирован в сети. Инструкции по использованию средства см. в разделе Использование средства PortQryUI с SQL Server.

Проверьте, прослушивается ли экземпляр SQL Server на динамических или статических портах. Затем используйте следующий способ, соответствующий вашему сценарию. В случае возникновения сомнений ознакомьтесь с разделом Проверка того, прослушивает ли SQL Server динамический или статический порт.

Сценарий 1. Динамические порты. В этом случае убедитесь, что служба обозревателя SQL Server запущена и UDP-порт 1434 не блокируется в брандмауэре между клиентом и сервером. Если вы не можете выполнить ни одно из этих действий, следует переключить экземпляр SQL Server на статический порт и использовать процедуру, описанную в разделе Настройка сервера для прослушивания определенного TCP-порта.

Сценарий 2. Настройка статического порта. Обозреватель SQL Server не запущен или UDP-порт 1434 не может быть открыт в брандмауэре. В этом случае обязательно укажите статический порт в строке подключения и убедитесь, что брандмауэр не блокирует порт. Дополнительные сведения см. в разделе Настройка брандмауэра Windows для доступа к ядру СУБД.

Шаг 6. Проверка включенных протоколов в SQL Server

В некоторых установках SQL Server подключения к ядру СУБД с другого компьютера не включены, если администратор не включит их вручную. Вы можете использовать один из следующих вариантов, чтобы проверить и включить необходимые протоколы с целью разрешения удаленных подключений к SQL Server Database Engine.

Вариант 1. Использование выходного файла средства SQLCheck

В выходном файле SQLCheck найдите раздел «Сведения об экземпляре SQL Server» и найдите раздел сведений об экземпляре SQL Server.

В разделе найдите значения, перечисленные в следующей таблице, чтобы определить, включены ли протоколы SQL Server:

Value name Последствие Дополнительные сведения
Включена общая память Может иметь значение «true» или «false» и влияет только на локальные подключения. Создание допустимой строки подключения с помощью протокола общей памяти
Именованные каналы включены Если значение равно «false», локальные и удаленные подключения, использующие именованные каналы, будут утеряны. Выбор сетевого протокола
TCP включен Если значение равно «false», локальные и удаленные подключения, использующие TCP/IP, будут утеряны.
Примечание. Большинство установок SQL Server используют TCP/IP в качестве протокола связи между сервером и клиентом.
Выбор сетевого протокола

Включите необходимые протоколы с помощью диспетчера конфигурации SQL Server или SQL Server PowerShell. Дополнительные сведения см. в разделе Включение или отключение сетевого протокола сервера.

После включения протокола ядро СУБД должно быть остановлено и перезапущено, чтобы изменения вступили в силу.

Вариант 2. Использование диспетчера конфигурации SQL Server

Чтобы включить подключения с другого компьютера с помощью диспетчера конфигурации SQL Server, выполните следующие действия:

Откройте диспетчер конфигурации SQL Server.

В области слева разверните узел Сетевая конфигурация SQL Server, а затем выберите экземпляр SQL Server, к которому нужно подключиться. В области справа перечислены доступные протоколы подключения. Общая память обычно включена. Может использоваться только с того же компьютера, поэтому в большинстве установок общая память остается включенной. Чтобы подключиться к SQL Server с другого компьютера, используйте TCP/IP. Если TCP/IP не включен, щелкните правой кнопкой мыши TCP/IP и выберите Включить.

Если вы изменяете включенный параметр для любого протокола, перезапустите ядро СУБД. В области слева выберите Службы SQL Server. В области справа щелкните правой кнопкой экземпляр ядра СУБД, а затем щелкните Перезапустить.

Шаг 7. Проверка подключения по протоколу TCP/IP

Для подключения к SQL Server с помощью TCP/IP требуется, чтобы система Windows установила подключение. Чтобы проверить TCP-подключение с помощью средства проверки связи, выполните следующие действия.

В меню Пуск выберите команду Выполнить. В окне Выполнить введите cmd и нажмите кнопку ОК.

В окне командной строки введите ping и IP-адрес компьютера, на котором работает SQL Server. Например:

  • IPv4: ping 192.168.1.101
  • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11

Если сеть настроена правильно, ping возвращает Reply from с некоторой дополнительной информацией. Если ping возвращает Destination host unreachable или Request timed out , TCP/IP настроен неправильно. Ошибки на этом этапе указывают на проблему с клиентским компьютером, серверным компьютером или другим устройством в сети, таким как маршрутизатор. Сведения об устранении проблем с сетью см. в разделе Расширенное устранение неполадок с TCP/IP.

Если тест ping с помощью IP-адреса завершается успешно, проверьте, можно ли разрешить имя компьютера в TCP/IP-адрес. На клиентском компьютере в окне командной строки введите введите ping и имя компьютера, на котором выполняется SQL Server. Например, ping newofficepc .

Если проверка связи по IP-адресу завершается успешно, но проверка связи с именем компьютера возвращает Destination host unreachable или Request timed out , на клиентском компьютере кэшируются старые (устаревшие) сведения о разрешении имен. Введите ipconfig /flushdns , чтобы очистить кэш DNS. Затем снова проверьте связь с компьютером по имени. Если кэш DNS пуст, клиентский компьютер проверяет последние сведения об IP-адресе серверного компьютера.

Если сеть настроена правильно, ping возвращает Reply from с некоторой дополнительной информацией. Если вы можете успешно проверить связь с серверным компьютером по IP-адресу, но получаете ошибку, например Destination host unreachable или Request timed out , при проверке связи по имени компьютера, разрешение имен настроено неправильно. Дополнительные сведения см. в разделе Устранение основных неполадок с TCP/IP. Для подключения к SQL Server не требуется успешное разрешение имен. Однако если имя компьютера не может быть разрешено в IP-адрес, необходимо установить подключения, чтобы указать IP-адрес. Проблему с разрешением имен можно устранить позже.

Можно также использовать командлет Test-NetConnection или Test-Connection для проверки TCP-подключения в соответствии с версией PowerShell, установленной на компьютере. Дополнительные сведения о командлете PowerShell см. в разделе Обзор командлета.

Шаг 8. Проверка локального подключения

Прежде чем устранять неполадки подключения с другого компьютера, проверьте возможность подключения из клиентского приложения, установленного локально на компьютере, на котором работает SQL Server. Локальное подключение позволяет избежать проблем с сетями и брандмауэрами.

Для выполнения этой процедуры требуется SQL Server Management Studio. Если у вас не установлено средство Management Studio, ознакомьтесь с разделом Загрузка SQL Server Management Studio (SSMS).

Если не удается установить Management Studio, можно проверить подключение с помощью служебной программы sqlcmd.exe. sqlcmd.exe устанавливается вместе с ядром СУБД. Дополнительные сведения об sqlcmd.exe см. в разделе Служебная программа sqlcmd.

Войдите на компьютер, на котором установлен SQL Server, используя имя входа для доступа к SQL Server. Во время установки SQL Server необходимо указать по крайней мере одно имя входа в качестве администратора SQL Server. Если вы не знаете, как связаться с администратором, ознакомьтесь с разделом Подключение к SQL Server при блокировке системных администраторов.

На начальной странице введите SQL Server Management Studio или в меню Пуск предыдущих версий Windows последовательно выберите Все программы, Microsoft SQL Server и SQL Server Management Studio.

В раскрывающемся меню Подключение выберите Ядро СУБД. В поле Проверка подлинности выберите Проверка подлинности Windows. В поле Имя сервера введите один из следующих типов подключений:

Подключение к Тип Пример
Экземпляр по умолчанию ACCNT27
Именованный экземпляр ACCNT27PAYROLL

При подключении SQL Server из клиентского приложения на одном и том же компьютере используется протокол общей памяти. Общая память — это тип локального именованного канала, поэтому иногда возникают ошибки, связанные с каналами.

Если на этом этапе возникает ошибка, перед продолжением ее необходимо устранить. Возможно, имя входа не авторизовано для подключения. Возможно, база данных по умолчанию отсутствует.

Вы не можете устранить проблему, не имея достаточной информации, так как некоторые сообщения об ошибках передаются клиенту намеренно. Это функция безопасности, которая не предоставляет злоумышленнику сведения об SQL Server. Дополнительные сведения об ошибке см. в журнале ошибок SQL Server.

Если вы получили сообщение об ошибке 18456 Сбой входа для пользователя, в статье электронной документации MSSQLSERVER_18456 содержатся дополнительные сведения о кодах ошибок. В блоге Аарона Бертрана (Aaron Bertrand) также содержится обширный список кодов ошибок, указанный в разделе Устранение ошибки 18456 (внешняя ссылка). Журнал ошибок можно просмотреть с помощью SSMS (при наличии возможности подключения) в разделе Управление в обозревателе объектов. В противном случае журнал ошибок можно просмотреть с помощью программы Блокнот, установленной в Windows. Расположение по умолчанию зависит от версии и может быть изменено во время установки. Расположение по умолчанию для SQL Server 2019 (15.x) — C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLLogERRORLOG.

Если вы можете подключиться с помощью общей памяти, протестируйте подключение по протоколу TCP. Вы можете принудительно установить TCP-подключение, указав tcp: перед именем. Примеры:

Подключение к: Тип: Пример.
Экземпляр по умолчанию tcp: tcp:ACCNT27
Именованный экземпляр tcp: tcp:ACCNT27PAYROLL

Если вы можете подключиться с помощью общей памяти, но не протокола TCP, необходимо устранить проблему, связанную с этим протоколом. Наиболее вероятной проблемой является то, что протокол TCP не включен. Чтобы включить протокол TCP, см. раздел Шаг 6. Проверка включенных протоколов в SQL Server.

Если ваша цель — подключиться с помощью учетной записи, отличной от учетной записи администратора, вы можете начать с подключения от имени администратора. Затем попробуйте снова подключиться с помощью имени входа для проверки подлинности Windows или SQL Server, которое использует клиентское приложение.

Шаг 9. Тестирование удаленного подключения

После подключения с помощью протокола TCP на том же компьютере попробуйте подключиться с клиентского компьютера. Можно использовать любое клиентское приложение, но во избежание сложностей установите средства управления SQL Server на клиенте. После установки попробуйте использовать SQL Server Management Studio.

Используйте SQL Server Management Studio на клиентском компьютере и попробуйте подключиться, используя IP-адрес и номер TCP-порта в формате номера порта с IP-адресом, разделенным запятыми. Например, 192.168.1.101,1433 . В случае сбоя подключения может возникнуть одна из следующих проблем:

ping IP-адреса не работает. Это указывает на общую проблему конфигурации TCP. Вернитесь к разделу Шаг 7. Проверка подключения по протоколу TCP/IP.

SQL Server не прослушивает протокол TCP. Вернитесь к разделу Шаг 6. Проверка включенных протоколов в SQL Server.

SQL Server прослушивает порт, отличный от указанного. Вернитесь к разделу Получение TCP-порта.

TCP-порт SQL Server блокируется брандмауэром. Вернитесь к разделу Шаг 5. Проверка конфигурации брандмауэра.

После установления подключения по IP-адресу и номеру порта ознакомьтесь со следующими сценариями:

При подключении к экземпляру по умолчанию, который прослушивает любой порт, отличный от 1433, необходимо использовать номер порта в строке подключения или создать псевдоним на клиентском компьютере для подключения к экземпляру по умолчанию. Служба обозревателя SQL Server не может перечислить порты экземпляра по умолчанию.

При подключении к именованному экземпляру попробуйте подключиться к экземпляру в формате имени экземпляра и IP-адреса с обратной косой чертой. (Например, 192.168.1.101 ). Если это действие не срабатывает, это означает, что номер порта не возвращается клиенту. Проблема связана со службой обозревателя SQL Server, которая предоставляет клиенту номер порта именованного экземпляра. Ниже приведены решения:

  • Запустите службу обозревателя SQL Server. Ознакомьтесь с инструкциями по запуску обозревателя в диспетчере конфигурации SQL Server.
  • Служба обозревателя SQL Server блокируется брандмауэром. Откройте UDP-порт 1434 в брандмауэре. Вернитесь к разделу Шаг 5. Проверка конфигурации брандмауэра. Убедитесь, что вы открываете UDP-порт, а не TCP-порт.
  • Сведения о UDP-порте 1434 блокируются маршрутизатором. UDP-соединение не осуществляется через маршрутизаторы и предотвращает заполнение сети трафиком с низким приоритетом. Вы можете настроить маршрутизатор для переадресации трафика UDP или указать номер порта при каждом подключении.
  • Если клиентский компьютер использует Windows 7, Windows Server 2008 или более позднюю версию операционной системы, клиентская операционная система может удалить трафик UDP, так как ответ с сервера возвращается с другого IP-адреса, который был запрошен. Это действие является функцией безопасности, блокирующей «слабое сопоставление источников». Дополнительные сведения см. в разделе Несколько IP-адресов сервера в электронной документации по устранению неполадок: истекло время ожидания. (Эта статья относится к SQL Server 2008 R2, но субъекты по-прежнему применяются. Вы можете настроить клиент на использование правильного IP-адреса или указать номер порта при каждом подключении.)

После подключения по IP-адресу (или IP-адресу и имени экземпляра для именованного экземпляра) попробуйте подключиться с помощью имени компьютера (или имени компьютера и имени экземпляра для именованного экземпляра). Поместите tcp: перед именем компьютера для принудительного подключения по протоколу TCP/IP. Например, для экземпляра по умолчанию на компьютере с именем ACCNT27 используйте tcp:ACCNT27 . Для именованного экземпляра PAYROLL на этом компьютере используйте tcp:ACCNT27PAYROLL . Если вы можете подключиться по IP-адресу, но не по имени компьютера, у вас возникла проблема с разрешением имен. Вернитесь к разделу Шаг 7. Проверка подключения по протоколу TCP/IP.

После установления подключения с помощью имени компьютера с принудительным использованием TCP попробуйте подключиться с помощью имени компьютера без принудительного использования TCP. Например, для экземпляра по умолчанию просто используйте имя компьютера, например CCNT27. Для именованного экземпляра используйте имя компьютера и имя экземпляра, например ACCNT27PAYROLL. Если вы можете подключиться только при принудительном использовании TCP, клиент, вероятно, использует другой протокол, например именованные каналы. Для устранения данной проблемы выполните следующие действия:

  1. На клиентском компьютере используйте диспетчер конфигурации SQL Server. В левой области разверните узел Sql Native Client Configuration и выберите Client Protocols (Протоколы клиента).
  2. В области слева убедитесь, что включен протокол TCP/IP. Если протокол TCP/IP отключен, щелкните правой кнопкой мыши TCP/IP и выберите Включить.
  3. Убедитесь, что порядок протокола для TCP/IP ниже, чем у протоколов именованных каналов (или VIA в более ранних версиях). Как правило, следует оставить общую память в качестве порядка 1, а TCP/IP — в качестве порядка 2. Общая память используется только в том случае, если клиент и SQL Server работают на одном компьютере. Все включенные протоколы реализуются по порядку, пока один из них не будет реализован успешно, но общая память пропускается, если подключение не установлено на одном компьютере.

Источник

Introduction

This article explains how to configure an instance of the SQL Server Database Engine to listen on a particular fixed port by utilising the SQL Server Configuration Manager to fix SQL error 26. In my earlier article, I have thoroughly highlighted how to get database tables size in SQL Server. The default example of the SQL Server Database Engine responses (listens) especially on TCP port 1433. Named instances of the Database Engine and SQL Server Compact are arranged for dynamic ports. This implies they select an accessible port when the SQL Server administration is started over. When you are interacting with a named instance through a firewall, configure the Database Engine to listen on a particular port, so that the fitting port can be opened in the firewall.

Error Description:

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: 26 — Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)

SQL error 26

Step 1: Run this query to view your TCP endpoints

SELECT name, protocol_desc, type_desc, state_desc, is_admin_endpoint, port, is_dynamic_port, ip_address FROM sys.tcp_endpoints

Step 2: Check for which SQL port is working

We can apply apply given below T-SQL command to check which port is working:

USE MASTER
GO
xp_readerrorlog 0, 1, N'Server is listening on'
GO

Step 3: Run below command to check applications listening on ports, try this command on command line:

>>> netstat -ap TCP

Step 4: Open immediate Run command (Windows + R) in your system

1) Now type on immediate Run command %windir%System32cliconfg.exe
2) Click on OK button then check an TCP ip pop-up is open
3) Left side you will see disabled protocols and right side disabled protocols.
4) Now select TCP/IP and click on «Enable«, it will add to right side enabled protocols.
5) Now click on added protocols TCP/IP and hit «Properties» button and enter/verify SQL Server desired TCP/IP no, SQL Server default port is 1433.
6) At last, now hit OK button.

Fix SQL Error 26
Figure 1
Fix SQL Server 26 Enable
Figure 2

Fix SQL Server TCP-IP
Figure 3

Step 5: Open «SQL Server Configuration Manager»

  • Now Click on «SQL Server Network Configuration» OR run immediate window, type SQLServerManager10.msc to quick access to SQL Server Configuration Manager  and Click on «Protocols for Name«
  • Right Click on «TCP/IP» (make sure it is Enabled) Click on Properties, if it is Disabled then Enabled it.
  • Now Select «IP Addresses» I to VI Tab and Enter TCP Default Port
  • Enter «TCP Port» 1433.
  • TCP Dynamic Ports ===> remove 0 (keep blank).
  • Now Restart «SQL Server Name.» using «services.msc» (winKey + r)
  • OR Restart SQL Server (right click on SQL Server Management studio and then click on Restart, it will restart your SQL Server).

Anjan kant

Outstanding journey in Microsoft Technologies (ASP.Net, C#, SQL Programming, WPF, Silverlight, WCF etc.), client side technologies AngularJS, KnockoutJS, Javascript, Ajax Calls, Json and Hybrid apps etc. I love to devote free time in writing, blogging, social networking and adventurous life

SQL Server Error 26 and SQL Server Error 40 appear when you try to connect to SQL Server. We will troubleshoot and try to fix them in the same article as both are related to connection issue. We recommend to use the below solutions for the both errors and to try to localize the problem.

The error Messages:

(provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

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: 26 – Error Locating Server/Instance Specified)

“ Named Pipes Provider Error: 40 – Could not open a connection to SQL Server“.

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: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

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 the SQL Server is configured to allow remote connections. (provided: Named Pipes Provider, error: 40- Could not open a connection to the SQL Server) (Microsoft SQL Server, Error: 2).

sql server error 26

sql server error 26

SQL Server Error 26 and SQL Server Error 40

What is SQL Server Error 26?

You will get this error message while trying to connect to a SQL Server named instance and not when you use default instance. The client stack could not receive SSRP response UDP packet from SQL Browser.

How to fix Error 26 on SQL Server?

  1. Recheck the server name for any error and fix it
  2. Check the instance name for any error
  3. Check if SQL Server browser is running
  4. Control if this instance exist on server
  5. Ping the server and check if DNS can be resolved correctly

What is SQL Server Error 40?

This error appears mostly when SQL Server does not allow remote connections, Firewall Settings or TCP/IP is not enabled. We will explain below all those in order to troubleshoot easy.

Read also other SQL Server Helping Posts:

  1. How to fix SQL Server Error 229
  2. Fix SQL Server Error 233
  3. SQL Server Error 17002

How to fix error 40 on SQL Server?

  1. Check SQL Server is running
  2. Make sure that Allow Remote Connections is enabled on sql server properties
  3. Check if TCP/IP is enabled
  4. Configure to allow SQL Server in Firewall Settings
  5. Check for working fine SQL Server Browser
  6. Make sure that you can ping the SQL Server

Below we will explain the above steps in long way for better understanding and easy fix of SQL error 26 and sql error 40.

1. Check if SQL Services are running

Hint! If you are running SQL Server by using an instance name and you are not using a specific TCP/IP port number in your connection string, you must enable the SQL Server Browser service to allow for remote connections.

How to check if SQL Server Service is running?

  • Go to SQL Server Configuration Manager > SQL Server Services
  • Find the service SQL Server (MSSQLSERVER) if default or the name of your instance
  • Check if is running – should be running state with a green indication

Using Windows Command Prompt

sc query mssqlserver

For named instance name use below by by replacing instancename with the actual SQL Server instance name.

sc query mssql$instancename

How to check if SQL Server Browser is running?

  • Navigate to SQL Server Configuration Manager > SQL Server Services
  • Find the SQL Server Browser Service
  • Check if it is configured to start automatically and is started – should be with a green indication

Using Windows Command Prompt

sc query sqlbrowser

Check if SQL Server Service

Check if SQL Server Service

2. Try to Flush DNS

How to flush DNS?

  1. Click Start Button
  2. Type CMD and press enter
  3. Type this into the black window that appears: ipconfig /flushdns and press enter.

Fluish DNS

Fluish DNS

3. Make sure that allow Remote Connection is enabled

Check if remote connections is allowed for applications/client. This option need to be allowed to establish connections and perform operations on the server. Often this is the reason of SQL Server Error 26 and SQL Server Error 40.

How to check if the remote connection is enabled?

  1. Open ‘SQL Server Management Studio’
  2. Right click on database name and select ‘Properties’
  3. In ‘Properties’ window, select ‘Security’, enable `SQL Server and Windows Authentication mode` and click `OK`.
  4. Now restart the SQL server.

Allow Remote Connections

Allow Remote Connections

4. Check Firewall

Check the firewall status for any troubles:

  1. Open ‘Control Panel’ and after that ‘Windows Firewall’.
  2. Select ‘Change Settings’ In ‘Windows Firewall’,
  3. Add an exception for port ‘1434’ and name it ‘SQL Server’
  4. Enable by clicking on the checkbox

5. Connection String

This solution is on cases when you are using connection string and are you writing it wrongly. For example connection string used by .NET framework:

Server=serverAddress;Database=dbName;User Id=username;

Password=password;

  1. Check for each parameter passed in the connection string for any typographical errors.
  2. Control the validity of the username/password.
  3. Confirm if the given database exists.

6. TCPIP Protocol

This solutions can work when you have mix of default and named instance or named instances only.

How to Enable TCP/IP port?

  1. Open SQL Server Configuration Manager
  2. Click on SQL Server Network Configuration and click on Protocols for Name
  3. Right-click on TCP/IP
  4. Click Enable
  5. Restart your SQL Server instance

Enable TCP-Ip port

Enable TCP-Ip port

If you want to use a static port for your instance (instead of dynamic that changes after every restart) you can change it here.

  1. Open Properties for TCP/IP protocol
  2. Go to IP Addresses tab
  3. Scroll down to IPAll section
  4. Remove 0 value from TCP Dynamic Ports
  5. Specify your port in TCP Port

You can use this port to connect to your instance by providing <servername>,<port> or <IP>,<port> as Server Name (yes, there is a comma, not a colon).

TCP-Ip static port

TCP-Ip static port

Conclusion:

We have explained some solutions to fix SQL Server Error 26 and SQL Server Error 40 and hope that you find the fix on those solutions. The both errors are included on the same article because they have almost the same troubleshoot. If you have any other solution worked for you comment below and we will try to include it on our article.

5 / 5 / 3

Регистрация: 05.03.2013

Сообщений: 220

1

19.07.2014, 21:18. Показов 88715. Ответов 8


Помогите пожалуста исправить
неполучается соеденится с SQL Server.

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или
с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя
экземпляра указано правильно и что на SQL Server разрешены удаленные соединения
. (provider: SQL Network Interfaces, error: 26 — Ошибка при обнаружении указанно
го сервера или экземпляра)

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1239 / 1049 / 293

Регистрация: 07.03.2012

Сообщений: 3,245

22.07.2014, 10:07

3

типичная ошибка при неверной строке соединения. Покажите, как соединяетесь



1



mixon-21

5 / 5 / 3

Регистрация: 05.03.2013

Сообщений: 220

22.07.2014, 17:14

 [ТС]

4

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
 
namespace SQL_2
    {
    class Program
        {
        static void Main( string[] args )
            {
            string urce=@"Data Source=.MSSQL10_50.MSSQLSERVERMSSQLDATA;
Initial Catalog=EvelDb; 
Integrated Security=True";
            SqlConnection conn = new SqlConnection ( urce );
            try
                {
                conn.Open ();
                Console.WriteLine ( conn.State );
                }
            catch( Exception ex )
                {
                Console.WriteLine ( ex.Message );
                }
            finally
                {
                conn.Close();
                Console.WriteLine ( conn.State );
                }
            Console.ReadLine ();
            }
        }
    }



0



1239 / 1049 / 293

Регистрация: 07.03.2012

Сообщений: 3,245

22.07.2014, 17:36

5

mixon-21,
management studio откройте, соединитесь с сервером, слева в верхнем углу будет прописано то, что должно быть в Data Source

Примерно так должно быть: CompNamesqlexpress



0



5 / 5 / 3

Регистрация: 05.03.2013

Сообщений: 220

22.07.2014, 18:32

 [ТС]

6

management studio откройте, соединитесь с сервером, слева в верхнем углу будет прописано то, что должно быть в Data Source

Примерно так должно быть: CompNamesqlexpress

МИША-ПК(SQL Server10/50.1600-Миша-ПКМиша)

Оно???



0



1239 / 1049 / 293

Регистрация: 07.03.2012

Сообщений: 3,245

22.07.2014, 18:53

7

Цитата
Сообщение от mixon-21
Посмотреть сообщение

МИША-ПК(SQL Server10/50.1600-Миша-ПКМиша)

не думаю что такое сочетание скобок и разных видов слешей ему понравится

Добавлено через 50 секунд
попробуйте просто МИША-ПК



0



mixon-21

5 / 5 / 3

Регистрация: 05.03.2013

Сообщений: 220

22.07.2014, 23:26

 [ТС]

8

Добавлено через 4 часа 6 минут
Подскажите как данные базы данных вывести на консоль???

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
namespace ConsoleApplication1
    {
    class Program
        {
        static void Main( string[] args )
            {
            using( SQLiteConnection conn = new SQLiteConnection ( "Data Source=foods.db" ) )
                {
                try
                    {
                    conn.Open ();
                    string strSql = "Select * From foods";
                    SQLiteCommand comand = new SQLiteCommand ( strSql, conn );
                    SQLiteDataReader reader = comand.ExecuteReader ();
 
                    while( reader.Read () )
                        {
                        Console.WriteLine ( reader.GetInt32 ( 0 ) + ", " + reader.GetString ( 1 ) );
                        }
                    // always call Close when done reading.
                    reader.Close ();
                    //
                    //SQLiteCommand testComand = new SQLiteCommand ();
                    //testComand.Connection = conn;
                    //testComand.CommandText = strSql;
                    }
                catch( Exception e )
                    {
                    Console.WriteLine ( e.Message );
                    }
                finally
                    {
                    conn.Close ();
                    Console.WriteLine ( conn.State );
                    }
                }
            Console.ReadLine ();
            }
        
        }
    }

выводит ошибку. как правильно???

Заданное приведение является недопустимым.
Closed



1



Alex_student

18 / 18 / 8

Регистрация: 10.02.2013

Сообщений: 250

23.07.2014, 10:43

9

К сожалению нет времени посидеть над вашим кодом, но посмотрите код из моего старого проекта, насколько помню работал без вопросов:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public ArrayList GetAllDebitors()
        {
            ArrayList alldebitors = new ArrayList();
            using (SqlConnection con = new SqlConnection(connectionString))
            {
                SqlCommand com = new SqlCommand("SELECT * FROM Debitors Order By Name", con);
 
                try
                {
                    con.Open();
                    SqlDataReader dr = com.ExecuteReader();
                    if (dr.HasRows)
                        foreach (DbDataRecord result in dr)
                            alldebitors.Add(result);
                }
                catch
                {
 
                }
            }
            return alldebitors;
        }



1



Понравилась статья? Поделить с друзьями:
  • Sql error 1062 sqlstate 23000
  • Sql error 25006 error cannot execute update in a read only transaction
  • Sql error code 242
  • Spring kafka error handler
  • Sql error 1062 23000 duplicate entry 1 for key users primary