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


97

Я щойно завантажив останню версію SQL Express 2012, але не можу підключитися до localhost. Я спробував localhost \ SQLExpress та автентифікацію Windows, але це дає мені повідомлення про помилку, мовляв, не вдається підключитися. Я щось тут пропускаю? Я раніше використовував SQL Server 2008 і ніколи не мав проблем із підключенням до localhost. Здається, він навіть не може його знайти. Також у Службах я бачу лише SQL Server VSS Writer. Це так і має бути? Або я щось пропускаю? Дякую


1
Здається, установка не пройшла добре. Ви намагалися відремонтувати / перевстановити?
Вікдор

1
Ви впевнені, що знайшли інсталятор для сервера, на відміну від, скажімо, інсталятора Management Studio?
Damien_The_Unbeliever

Відповіді:


181

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

  1. Потрібно перевірити, чи працює служба SQL Server. Ви можете зробити це, перейшовши Start > Control Panel > Administrative Tools > Servicesта перевіривши, чи працює служба SQL Server ( SQLEXPRESS). Якщо ні, почніть це.

  2. Перебуваючи в аплеті служб, також переконайтеся, що запущено службу SQL Browser . Якщо ні, почніть це .

  3. Вам потрібно переконатися, що SQL серверу дозволено використовувати 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Якщо так, чи працює він?

Якщо він не працює

Здається, ви не все встановили. Запустіть інсталюючий файл та оберіть опцію "Нова установка або додайте функції до існуючої інсталяції". Звідти ви зможете переконатися, що служба двигуна бази даних встановлена.


2
@dido: Пуск-> Виконати-> Services.msc
Равіндра Багале

3
Інша річ, щоб перевірити це ім'я екземпляра. Залежно від способу встановлення SQL Server, ви можете або не потребувати вказувати ім'я примірника після хоста.
Арво Боуен

"Увімкнено TCP / IP та іменовані труби", здається, потрібно після першої установки
James A Mohler

3
Це було дурно, але для мене проблемою було використання "localhost" як імені сервера, а не "localhost \ SQLEXPRESS01", як було встановлено в інсталяції
Хлопець

1
У моєму випадку SQLBrowser було вимкнено, а інструмент конфігурації не перелічено у папці інструментів sql. Запустити інструмент config через cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Автоматично запускати SQLBrowser, якщо config інструмент не працює /programming/21375014/i-cannot-start-sql-server-browser
steven87vt

121

Перейдіть на сторінку -> Програми -> 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>

4
Нарешті, це спрацювало для мене! Я змінив порт в IP1, IP2, ... але не в IPAll. Це вдалося, дякую!
Джордж

2
@George точно такий же, як і ви. Я навіть вимкнув брандмауер, і нічого не працювало. Був 40xxx порт TCP динамічних портів. Я видалив його і поклав 1433 в порт TCP для IPAll, це також зробив. Дякую!
Аліссон,

Це було ключем і для мене.
Ерік Олсон,

1
Після багатьох годин ударів головою об стіну, це нарешті спрацювало. Дякую.
Топ Кіт

Чудове рішення. Це рятує мій день. Дуже дякую!
Lavande

13

у SQL SERVER EXPRESS 2012 ви повинні використовувати "(localdb) \ MSSQLLocalDB" як ім'я джерела даних, наприклад, ви можете використовувати рядок з'єднання, як це

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;

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).


Я спробував інші рішення вище, перш ніж потрапити сюди. Цей зафіксував це для мене! Крім того, я виявив, що завантаження речі, яка називається psping, допомогло мені перевірити з'єднання. Приклад: psping 127.0.0.1:1433
JMI MADISON

7

Спочатку перевірте, чи працює служба SQL Server або вона зупинена; якщо її зупинено, просто запустіть її, щоб зробити це ... просто виконайте наведені нижче дії.

1. запустіть -> Виконати -> Services.msc

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

  1. Перейдіть на вкладку Стандарт на панелі послуг, а потім знайдіть сервер SQl (SQL2014)

"SQL2014" заданий мною, це може бути інша назва у вашому випадку

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

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

сподіваюся, це комусь допоможе.


4

Усі мої служби працювали належним чином, і я все ще не міг підключитися.

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

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


3

Спробуйте перейти від автентифікації Windows до змішаного режиму


1

Це дивно, у мене є подібна проблема. Я завантажив пакет для SQL 2012 Express за допомогою інструментів, але двигун бази даних не був встановлений.

Я завантажив інший із сайту MS, і цей встановив механізм баз даних. Після перезавантаження послуги були перелічені та готові до роботи.


1

Моя ситуація

  • порожнє ім'я екземпляра в студії управління SQL Server> виберіть двигун бази даних> Кнопка правої миші> Властивості (Властивості сервера)> Властивості перегляду зв’язку Посилання> Продукт> Ім’я екземпляра порожнє

  • Джерело даних =. \ 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. Те, що мені виправлено, було переходити до програм та функцій та виконувати його ремонт.


1

Проблема для мене полягала в тому, що я не уточнював .\. Я лише вказував назву екземпляра:

  • не працює: SQL2016
  • працював: .\SQL2016

1

Виконавши кроки, про які згадав @ Ravindra Bagale , спробуйте цей крок. Server name: localhost\{Instance name you were gave}

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


0

Спробуйте змінити Користувача, якому належить послуга, на Локальну систему або скористайтеся своїм обліковим записом адміністратора.

Під сервісами я змінив вхід у службу SQL Server (MSSQLSERVER) з NT Service \ Sql ... на локальну систему. Клацніть послугу правою кнопкою миші та перейдіть на вкладку Вхід та виберіть перемикач Локальна системна обліковий запис. Ви також можете змусити іншого користувача також запустити його, якщо це підходить краще.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.