... как говорится в моем заголовке ... Я не могу подключиться к своему экземпляру на sql server express из стандарта sql server ... Я попытался отключить стенку стрельбы и проверил, что sqlbrowser запущен, но по какой-то причине я не могу подключиться к своей базе данных .. . называется имя_сервера \ sqlexpress ..
У меня есть виртуальная машина и полнофункциональный MS SQL Server 2008 R2, работающий на ней ... и у меня есть несколько других виртуальных машин, работающих под управлением sqlexpress. они работают нормально, и я могу подключиться к ним с помощью sqlexpress ... но когда я пытаюсь получить доступ с sqlserver ... я получаю эту ошибку.
Произошла ошибка, связанная с сетью или конкретным экземпляром, при установке соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 26 - Ошибка при обнаружении указанного сервера / экземпляра) (Microsoft SQL Server, ошибка: -1)
Углубившись в ошибку, я обнаружил это
Номер ошибки: -1 Уровень серьезности: 20 Состояние: 0
и наконец это ...
Program Location:
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
Брандмауэр отключен на виртуальной машине, на которой запущен mssqlserver ... Я отключил брандмауэр на одной из виртуальных машин, на которой запущен sqlexpress, но я все еще получаю сообщение об ошибке ... может кто-нибудь, пожалуйста, помогите ... спасибо
Убедитесь, что для экземпляра базы данных включен протокол TCP. Microsoft предоставляет подробные инструкции Вот.
Достаточно короткого и простого ответа ...
Для меня сообщение об ошибке означает, что SQL Server Standard не может найти имя хоста в DNS, он не может правильно взаимодействовать со службой sqlbrowser, sqlbrowser по какой-то причине не знает об экземпляре или Standard не может подключиться к правильный порт на компьютере Express.
Что мы жестяная банка вылетают из таблицы такие вещи, как неправильное имя пользователя, неверный пароль SQL или отсутствующая база данных по умолчанию, которые можно было бы заметить после подключение. Процесс подключения не продвигается достаточно далеко, чтобы случился такой сбой.
Я предполагаю, что все ваши виртуальные машины находятся на одном сервере и нам не нужно беспокоиться об аппаратных брандмауэрах или перенаправлении NAT, поскольку все виртуальные машины находятся в одной виртуальной сети.
Что меня поражает, так это то, что вы можете подключиться со стандартного компьютера ко всем компьютерам Express, кроме одного. Чем отличается этот конкретный компьютер? Я предполагаю, что сломанный имеет некоторые сетевые функции, например, он может видеть другие компьютеры. Находится ли проблемный компьютер в другой виртуальной сети, чем другие компьютеры?
Некоторые задачи по устранению неполадок: Во-первых, выясните, какой IP-адрес у компьютера Express.
Затем подключитесь к компьютеру SQL Server Standard с помощью служб терминалов, удаленного рабочего стола, vSphere или чего-то подобного. Можно ли пинговать с SQL Server Standard на SQL Server Express? Сначала попробуйте пропинговать имя хоста для компьютера Express, затем попробуйте использовать IP. Если вы можете пинговать по имени хоста и по IP, дважды проверьте, что отображаемый при пинге по имени хоста совпадает с IP-адресом, назначенным компьютеру Express. (Возможно, вы отправили эхо-запрос на другой компьютер, если вам «повезло».) Если IP-адреса отличаются, у вас может быть некоторая неправильная конфигурация сети вашего гипервизора.
Если вы не можете проверить связь по имени хоста и получаете сообщение об ошибке, что имя хоста не найдено, попробуйте использовать полное доменное имя. Если ваше имя хоста - «express», попробуйте «express.foo.com» или что-то еще, что вам кажется подходящим. Если что-то работает, попробуйте подключиться к экземпляру с этим именем хоста.
Если вы можете выполнить эхо-запрос по имени хоста и IP-адреса совпадают, компьютер Express должен быть правильно зарегистрирован в DNS.
Если вы не можете успешно выполнить эхо-запрос по имени хоста, но можете по IP-адресу, попробуйте подключиться к SSMS со стандартного компьютера с IP-адресом компьютера Express, а не с именем хоста (т.е. вместо «hal9000 \ sqlexpress» попробуйте «192.168. 1.100 \ sqlexpress ". Если это сработает, что-то не так с сетью.
Оставить это на месте не является хорошим долгосрочным решением, потому что IP-адреса меняются чаще, чем имена хостов, но это может быть приемлемым для тестирования / разработки или до тех пор, пока вы не поймете, почему компьютер Express не в DNS, как вы думаете так должно быть.
Если проверка связи работает нормально, можно ли использовать SSMS на компьютере Standard для подключения к экземпляру на компьютере Express? Если вы можете, проблема, вероятно, связана с тем, как был определен связанный сервер.