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

97

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

дидо
источник
1
Кажется, установка не удалась. Вы пытались его отремонтировать / переустановить?
Викдор 08
1
Вы уверены, что нашли установщик для сервера, а не, скажем, установщик Management Studio?
Damien_The_Unbeliever 08

Ответы:

183

По словам Аарона Бертанда :

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

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

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

Если он не работает, то

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

Равиндра Багале
источник
2
@dido: Пуск-> Выполнить-> Services.msc
Равиндра Багале
3
Еще нужно проверить имя экземпляра. В зависимости от того, как был установлен SQL Server, вам может потребоваться или не обязательно указывать имя экземпляра после хоста.
Арво Боуэн
«TCP / IP и именованные каналы включены», по-видимому, необходимо после первой установки
Джеймс А. Молер
3
Это было глупо, но для меня проблема заключалась в использовании «localhost» в качестве имени сервера, а не «localhost \ SQLEXPRESS01», как было установлено при установке
Гай
1
В моем случае SQLBrowser был отключен, а инструмент настройки не был указан в папке инструментов sql. Для запуска инструмента настройки через cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Для автоматического запуска SQLBrowser, если конфигурация инструмент не работает /programming/21375014/i-cannot-start-sql-server-browser
steven87vt
124

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

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

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

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

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

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
Ogglas
источник
4
Наконец, у меня это сработало! Я изменил порт в IP1, IP2, ... но не в IPAll. Спасибо!
Джордж
2
@ Джордж точно такой же, как ты. Я даже отключил брандмауэр, и ничего не работало. В динамических портах TCP был порт 40xxx . Я удалил его и поместил 1433 в порт TCP для IPAll, это тоже помогло. Спасибо!
Alisson
Это было ключом и для меня.
Erik Olson
1
После многих часов ударов головой об стену это наконец сработало. Спасибо.
Top Cat
Отличное решение. Это спасает мне день. Спасибо!
Lavande
13

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

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
A.SH
источник
10

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

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

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

Майкл Лоуренс
источник
Подключение не требуется; У меня он отключен, и я могу нормально подключиться. Это просто упрощает работу, когда вы не знаете точное имя хоста / экземпляра для подключения, поскольку это позволяет запрашивать эти вещи другим программным обеспечением.
Саймон Морган
8

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

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

Не удается подключиться к базе данных 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).

naXa
источник
Прежде чем попасть сюда, я попробовал другие решения, указанные выше. Этот исправил это для меня! Кроме того, я обнаружил, что загрузка psping помогла мне проверить соединение. Пример: psping 127.0.0.1:1433
JMI MADISON
7

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

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

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

  1. Перейдите на вкладку Standard на панели служб и найдите SQl Server (SQL2014).

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

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

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

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

ПК-1825
источник
4

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

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

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

контакты
источник
3

Попробуйте перейти с проверки подлинности Windows на смешанный режим

Гуру1
источник
1

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

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

user2832504
источник
1

Моя ситуация

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

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

Решение : в web.config

xxxxxx = имя моей базы данных без .mdf yyyyyy = имя моей базы данных в обозревателе баз данных VS2012

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

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

Марк Ван Рамсте
источник
1

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

Mur
источник
1

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

  • не сработало: SQL2016
  • работал: .\SQL2016
Cosmin
источник
1

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

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

Мохамед Мустхак
источник
0

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

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

DavidTheDev
источник