Не удается подключиться к локальному хосту на SQL Server Express 2012/2016.

Я только что скачал последнюю версию SQL Express 2012, но не могу подключиться к локальному хосту. Я пробовал localhost\SQLExpress и аутентификацию Windows, но выдает сообщение об ошибке, в котором говорится, что невозможно подключиться. Я что-то упустил здесь? Раньше я использовал SQL Server 2008, и у меня никогда не было проблем с подключением к локальному хосту. Кажется, что он даже не может найти его. Также в службах я вижу только модуль записи SQL Server VSS. Это так и должно быть? Или я что-то упускаю? Спасибо


person dido    schedule 08.10.2012    source источник
comment
Кажется, установка не удалась. Пробовали ремонтировать/переустанавливать?   -  person Vikdor    schedule 08.10.2012
comment
Вы уверены, что нашли установщик для сервера, а не, скажем, установщик Management Studio?   -  person Damien_The_Unbeliever    schedule 08.10.2012


Ответы (14)


Согласно Аарону Бертанду:

  1. Вам необходимо убедиться, что служба SQL Server запущена. Вы можете сделать это, перейдя к Start > Control Panel > Administrative Tools > Services и проверив, что служба SQL Server (SQLEXPRESS) работает. Если нет, запустите его.

  2. Пока вы находитесь в апплете служб, также убедитесь, что служба SQL Browser запущен. Если нет, запустите его .

  3. Вы должны убедиться, что SQL Server может использовать TCP/IP или именованные каналы. Вы можете включить их, открыв Диспетчер конфигурации SQL Server в Start > Programs > Microsoft SQL Server 2012 > Configuration Tools (или SQL Server Configuration Manager) и убедитесь, что TCP/IP и именованные каналы включены. Если вы не найдете Диспетчер конфигурации SQL Server в меню «Пуск», вы можете запустить оснастку MMC вручную. Проверьте Диспетчер конфигурации SQL Server для путь к оснастке согласно вашей версии.

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

  4. Убедитесь, что ваш режим аутентификации подключения к SQL Server соответствует вашей строке подключения:

    • Если вы подключаетесь с использованием имени пользователя и пароля, вам необходимо настроить SQL Server для принятия «Режима проверки подлинности SQL Server»:

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
      
    • Если вы подключаетесь с использованием «Integrated Security=true» (режим Windows) и эта ошибка возникает только при отладке веб-приложений, вам необходимо добавьте ApplicationPoolIdentity в качестве входа в SQL Server:
  5. в противном случае запустить Start -> Run -> Services.msc Если да, то он запущен?

Если он не запущен, то

Похоже, вы не все установили. Запустите установочный файл и выберите вариант «Новая установка или добавление функций к существующей установке». Оттуда вы сможете убедиться, что служба ядра базы данных установлена.

person Ravindra Bagale    schedule 08.10.2012
comment
@dido: Пуск->Выполнить->Services.msc - person Ravindra Bagale; 08.10.2012
comment
Еще одна вещь, которую нужно проверить, — это имя экземпляра. В зависимости от того, как был установлен SQL Server, вам может понадобиться или не понадобиться указывать имя экземпляра после хоста. - person Arvo Bowen; 05.07.2016
comment
Включение TCP/IP и именованных каналов кажется необходимым после первой установки - person James A Mohler; 18.02.2017
comment
Я вижу угловое крыло позади тебя! Спасение дня. - person kta; 01.05.2017
comment
Это было глупо, но для меня проблема заключалась в использовании localhost в качестве имени сервера, а не localhost\SQLEXPRESS01, как было задано при установке. - person Guy s; 17.05.2018
comment
Обратите внимание, что если вы используете имя экземпляра по умолчанию, например MSSQLSERVER или SQLEXPRESS, вы можете подключиться только через LocalHost. Фактически, использование полного имени, такого как LocalHost\MSSQLSERVER, может не сработать (не для меня). Тем не менее, для пользовательского имени экземпляра, такого как SQLEXPRESS01, вы должны указать имя. И проголосуйте за Равиндру за полезную информацию. - person Roberto; 14.11.2018
comment
В моем случае SQLBrowser был отключен, и инструмент настройки не был указан в папке инструментов sql. Чтобы запустить инструмент настройки с помощью cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Автоматический запуск SQLBrowser, если инструмент конфигурации терпит неудачу запуск-sql-сервер-браузер - person steven87vt; 22.01.2019
comment
Добавление пользователя и установка его разрешений для db_owner исправили мою проблему. - person AriBaa Games; 01.03.2019
comment
Windows не удалось запустить SQL Server (MSSQLSERVER) на локальном компьютере - person DFSFOT; 28.03.2019

Перейдите в меню «Пуск» -> «Программы» -> «Microsoft SQL ServerYYYY» -> «Инструменты настройки» -> «Диспетчер конфигурации SQL Server YYYY» или запустите «SQLServerManager12.msc».

Убедитесь, что TCP/IP включен в клиентских протоколах.

Затем перейдите в «Конфигурация сети SQL Server» и дважды щелкните TCP/IP. Перейдите на вкладку «IP-адреса» и прокрутите вниз. В разделе «IP All» удалите динамические порты TCP, если они присутствуют, и установите для порта TCP значение 1433. Нажмите «ОК», а затем вернитесь в «Службы SQL Server» и перезапустите экземпляр SQL Server. Теперь вы можете подключиться через локальный хост, по крайней мере, я мог.

введите описание изображения здесь

Обратите внимание, что эта ошибка может возникнуть и при подключении из других приложений. Пример строки подключения обычного веб-приложения C# Web.config:

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
person Ogglas    schedule 28.12.2015
comment
Наконец, это сработало для меня! Я изменил порт в IP1, IP2, ... но не в IPAll. Вот и получилось, спасибо! - person George; 31.05.2016
comment
@ Джордж точно такой же, как и ты. Я даже отключил брандмауэр, и ничего не помогло. В динамических портах TCP был порт 40xxx. Я удалил его и поставил 1433 в TCP-порт для IPAll, это тоже помогло. Спасибо! - person Alisson; 19.07.2016
comment
Это было ключевым и для меня. - person Erik Olson; 20.11.2016
comment
После многих часов биения головой о стену это, наконец, сработало. Спасибо. - person Top Cat; 12.06.2018
comment
Отличное решение. Это спасает мой день. Большое спасибо! - person Lavande; 18.09.2018
comment
Это действительно решение, за которым следует перезагрузка - person paul100; 24.10.2018
comment
создал нового пользователя на windows 10 и удалил старого. после этого localhost не работал. Оказывается, установка IPALL на 1433 работает, но если у вас есть какой-то другой порт, использующий 1433 по умолчанию, у вас будут проблемы. - person Niklas; 13.12.2018

в SQL SERVER EXPRESS 2012 вы должны использовать "(localdb)\MSSQLLocalDB" в качестве имени источника данных, например, вы можете использовать строку подключения, подобную этой

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
person A.SH    schedule 05.04.2017
comment
Здорово! Использование (localdb)\MSSQLLocalDB работало для подключения к SSMS, когда localhost не работал - person Ben; 23.10.2020
comment
Работай и у меня - person ayush mishra; 08.12.2020

Сначала попробуйте самое популярное решение, предоставленное Ravindra Bagale.

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

Не удается подключиться к базе данных SQL Server. Ошибка: TCP/IP-соединение с хостом [IP-адрес], порт 1433 не удалось. Ошибка: «Отказано в подключении: подключитесь. Проверьте свойства подключения. Убедитесь, что экземпляр SQL Server работает на хосте и принимает TCP/IP-соединения на порту. Убедитесь, что TCP-соединения с портом не блокируются брандмауэром. ."

  1. Откройте диспетчер конфигурации SQL Server.
  2. Разверните сетевую конфигурацию SQL Server для рассматриваемого экземпляра сервера.
  3. Дважды щелкните «TCP/IP».
  4. В разделе «Протокол» установите «Включено» на «Да».
  5. В разделе «IP-адреса» установите TCP-порт в разделе «IP All» (по умолчанию 1433).
  6. В разделе «IP-адреса» найдите подразделы с IP-адресом 127.0.0.1 (для IPv4) и ::1 (для IPv6) и установите для «Включено» и «Активно» значение «Да», а для TCP-порта — 1433.

    Свойства TCP/IP

  7. Перейдите к Start > Control Panel > Administrative Tools > Services и перезапустите службу SQL Server (SQLEXPRESS).

person naXa    schedule 25.01.2018
comment
Я попробовал другие решения выше, прежде чем попасть сюда. Этот исправил это для меня! Кроме того, я обнаружил, что загрузка вещи под названием psping помогла мне проверить соединение. Пример: psping 127.0.0.1:1433 - person twitchdotcom slash KANJICODER; 14.04.2018
comment
у меня это не сработало, пока я не установил IP-адрес 127.0.0.1 и порт 1433 на IP4 - person xinthose; 05.01.2021

У меня была похожая проблема - может быть мое решение поможет. Я только что установил MSSQL EX 2012 (установка по умолчанию) и попытался подключиться к VS2012 EX. Нет радости. Затем я посмотрел на службы и подтвердил, что SQL Server (SQLEXPRESS) действительно работает.

Однако я увидел еще одну интересную службу под названием SQL Server Browser, которая была отключена. Я включил его, запустил, а затем смог получить имя сервера в новом соединении в VS2012 EX и подключиться.

Странно, что они отключили службу, необходимую для подключения VS.

person Michael Lawrence    schedule 03.03.2013
comment
Подключение не требуется; У меня он отключен, и я могу подключиться нормально. Это просто упрощает задачу, когда вы не знаете точное имя хоста/экземпляра для подключения, поскольку это позволяет запрашивать эти вещи другим программным обеспечением. - person Simon Morgan; 29.04.2019

Сначала проверьте, запущена или остановлена ​​служба SQL Server, если она остановлена, просто запустите ее, для этого просто выполните следующие шаги.

1. Пуск -> Выполнить -> Services.msc

введите описание изображения здесь

  1. Перейдите на вкладку «Стандартные» на панели служб, затем найдите SQl Server (SQL2014).

«SQL2014» дан мной, в вашем случае это может быть другое имя.

введите описание изображения здесь

вот и все, как только вы запустите службу SQL, вы сможете подключить локальную базу данных.

надеюсь, это поможет кому-то.

person PK-1825    schedule 28.10.2016

Все мои службы работали, как и ожидалось, но я все еще не мог подключиться.

Мне пришлось обновить раздел свойств TCP/IP в Диспетчере конфигурации SQL Server для моих протоколов SQL Server Express и установить для порта IPALL значение 1433, чтобы подключиться к сервер, как и ожидалось.

введите описание изображения здесь

person contactmatt    schedule 24.10.2018

Попробуйте перейти с аутентификации Windows на смешанный режим

person Guru1    schedule 16.01.2015

После выполнения шагов, упомянутых @Ravindra Bagale, попробуйте этот шаг. Server name: localhost\{Instance name you were gave}

введите здесь описание изображения

person Mohamed Musthaque    schedule 03.06.2019

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

  • не получилось: SQL2016
  • работало: .\SQL2016
person Cosmin    schedule 13.11.2018

Странно, у меня похожая проблема. Я загрузил пакет для SQL 2012 Express с инструментами, но ядро ​​базы данных не было установлено.

Я загрузил другой с сайта MS, и этот установил механизм базы данных. После перезагрузки службы были перечислены и готовы к работе.

person user2832504    schedule 30.09.2013

Моя ситуация

  • пустое имя экземпляра в SQL Server Management Studio > выберите механизм базы данных > правая кнопка мыши > свойства (свойства сервера) > свойства подключения просмотра ссылок > продукт > имя экземпляра пусто

  • Источник данных=.\SQLEXPRESS не работал => использовать localhost в web.config (см. ниже)

Решение: в файле web.config.

xxxxxx = name of my database without .mdf yyyyyy = name of my database in VS2012 database explorer

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

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

person Marc Van Rumste    schedule 24.04.2014

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

person Mur    schedule 19.09.2014

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

В службах я изменил вход в систему SQL Server службы (MSSQLSERVER) с NT Service\Sql... на локальную систему. Щелкните правой кнопкой мыши службу, перейдите на вкладку «Вход в систему» ​​и выберите переключатель «Учетная запись локальной системы». Вы также можете заставить другого пользователя запустить его, если это подходит лучше.

person DavidTheDev    schedule 10.12.2018