На іншому кінці труби немає жодного процесу (SQL Server 2012)


92

У мене така помилка:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

Я знаю, що на цьому сайті є подібні запитання, і відповідь полягає в тому, щоб увімкнути TCP / IP та канали. Але я ввімкнув обидва, і все ще не працює:

Помилка MSSQL

Я використовую Microsoft SQL Server 2012, і користувач має повні дозволи.


спробуйте pinal dave solutions blog.sqlauthority.com/2009/05/21/…
— GeoVIP

Це спрацювало для мене, коли я підключився від автентифікації сервера до автентифікації Windows.
— ganji raajkumar

1
Що працювало у мене (sql express 2016) ... Видалення змішаної автентифікації, залишаючи лише автентифікацію Windows, службу перезапуску, поверніть її назад на змішану автентифікацію, послугу перезапуску. поки я не зробив цього, нічого не виправило помилку No process
— Ростол,

1
Наскільки це варто, перевірте рядок підключення у вашому файлі конфігурації. Для мене хтось змінив одне з імен серверів і зареєстрував його. Мій код намагався потрапити в базу даних, якої не було на моєму сервері.
— камаїнк

Відповіді:


120

Для сервера було встановлено автентифікацію Windows лише за замовчуванням. Немає жодного повідомлення, що походження помилок саме в цьому, тому важко це зрозуміти. Студія управління SQL не попереджає, навіть якщо ви створюєте користувача лише з автентифікацією SQL.

Тож відповідь така: Перехід із Windows на аутентифікацію SQL :

  1. Клацніть правою кнопкою миші на назві сервера та виберіть properties ;
  2. Виберіть security вкладку;
  3. Увімкніть SQL Server and Windows Authentication mode ;
  4. Перезапустіть службу SQL Server.

Тепер ви можете підключитися за допомогою свого логіна / пароля.


5
Варіант був правильно перевірений, тому я перевірив «Аутентифікація Windows», я перезапускаю службу, а потім перевіряю «Автентифікація Windows + Автентифікація SQL», щоб вирішити цю проблему. Такий щасливий!
— Гроко

2
Щоб пояснити коментар @ Groco: Увійдіть, використовуючи Windows Authentication>> Клацніть правою кнопкою миші на вашому сервері >> Properties>> Security( Унизу Select a page) >> Під Server Authenticationвиберіть SQL Server and Windows Authentication mode. Закрийте SQL Server Management Studio, перезапустіть службу SQL Server і спробуйте ввійти ще раз.
— Minh Tran

1
Проблема, яку я мав, полягала в тому, що Server Authenticationбуло встановлено Windows Authentication mode. І незалежно від правильного введення пароля, мене завжди зустрічали A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.). Протягом усієї помилки я зміг увійти, використовуючиWindows Authentication
— Minh Tran

Дуже дякую. перезапустіть службу Sql, виправивши мою проблему.
— user1282609

57

Щоб вирішити цю проблему, підключіться до SQL Management Studio за допомогою автентифікації Windows, клацніть правою кнопкою миші на властивості вузла сервера-> Безпека та ввімкніть режим автентифікації SQL Server та Windows. Якщо ви використовуєте "sa", переконайтеся, що обліковий запис увімкнено. Для цього відкрийте 'sa' у розділі Входи та перегляньте стан.

увімкнути адміністратора

Якщо це не спрацювало, можливо, доведеться переінсталювати SQL Server


Після цього перезапустіть SQL Server. Тоді спробуйте ввійти.
— Webucator

25

Також ви можете спробувати перейти до служб і перезапустити екземпляр сервера Sqlвведіть тут опис зображення


3
Це вирішило мою проблему після випробування всіх інших виправлень.
— mini998

Е-е, чи не слід із цим поставити велику мітку попередження про те, що перезапуск серверної служби sql лише тому, що ви не можете підключитися, порушить інші речі, які вдало підключилися?
— undrline

Для мене це чудово працювало. Я бачу, як легко людям нехтувати, розглядаючи це рішення.
— TechnicalTim

17

Отже, у мене це було нещодавно, для інтегрованої безпеки. Виявляється, мою проблему насправді було досить просто виправити, але головним чином тому, що я забув додати "Trusted_Connection = True" до мого рядка з'єднання.

Я знаю, що це може здатися досить очевидним, але це змусило мене йти близько 20 хвилин, поки я не зрозумів, що скопіював свій формат рядка підключення з connectionstrings.com і ця частина рядка підключення відсутня.

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


Я спробував усі коментарі, але це не спрацювало. Ваше рішення для мене ідеально працювало. Велике спасибі.
— Royal.

це було останнє, що я спробував після того, як увімкнено всі інші функції перевірки tcp, додавши автентифікацію в змішаному режимі та перезапустивши службу браузера sql, і це спрацювало. подяка
— Myke Black

10

Іншою причиною цієї помилки може бути неправильне або неіснуюче ім'я бази даних.

Примусове підключення TCP / IP (шляхом надання 127.0.0.1замість localhostабо .) може виявити справжню причину помилки. У моєму випадку ім'я бази даних, вказане у рядку з'єднання, було неправильним.

Отже, ось контрольний список:

  • Переконайтеся, що Named Pipe увімкнено в диспетчері конфігурацій (не забудьте перезапустити сервер).
  • Переконайтесь, що база даних, до якої ви підключаєтесь, існує.
  • Переконайтеся, що автентифікацію SQL Server (або змішаний режим) увімкнено.

що сталося з менеджером конфігурацій у Express 2016? Я не бачу його доступним? О, я повинен запустити SQLServerManager13.msc зараз
— Кірстен Жадібність

Коли я змінився на 127.0.0.1, з’явилося повідомлення про помилку = Помилка, пов’язана з мережею або конкретним екземпляром, сталася під час встановлення підключення до SQL Server. Сервер не знайдено або недоступний. Переконайтеся, що ім'я екземпляра правильне, і що SQL Server налаштовано на можливість віддаленого підключення. (постачальник: Мережеві інтерфейси SQL, помилка: 26 - Помилка пошуку сервера / вказано екземпляр) Джерело = Постачальник даних Core .Net SqlClient
— Kirsten Greed

1
@kirsteng Перевірте встановлені екземпляри SQL Server. Ви встановили екземпляр за замовчуванням (MSSQLSERVER)?
— Мохаммад Дехган,

Аутентифікація SQL Server у змішаному режимі зробила це для мене. Хлопці, якщо ви виконуєте свіжу інсталяцію SQL Server Express, коли ви хочете додати користувача для своїх потреб у програмуванні, вам потрібно змінити його на змішаний режим, інакше буде доступна лише автентифікація Windows.
— Едуардо

Це (начебто) спрацювало. Одного разу я змінив localdb безглуздя на 127.0.0.1, він пройшов.
— Ерік

9

Будь ласка, перевірте це також введіть тут опис зображенняТакож перевірте конфігурацію TCP / IP, імена PipeLine та спільну пам'ять


7

Якщо ви намагаєтеся ввійти в систему за допомогою облікових даних SQL, ви також можете спробувати змінити режим реєстрації для SQL Server у реєстрі, щоб дозволити автентифікацію як SQL Server, так і Windows.

  1. Відкрити regedit
  2. Перейдіть до ключа екземпляра SQL (може відрізнятися залежно від назви вашого екземпляра): Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. Встановіть для LoginMode значення 2

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

  1. Перезапустіть службу SQL та SQL Server Management Studio і повторіть спробу.

це найбільш влучна відповідь.
— sushh

5

Я стикаюся з цим питанням вдруге, і всі попередні відповіді не вдались, на щастя, такий запит виконує цю роботу:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go

4

Для мене термін дії пароля закінчився для мого користувача для входу, і я отримав такий самий виняток. Потім я заходжу в режим автентифікації Windows і змінюю пароль для пов'язаного користувача, і це вирішує мою проблему.


ти врятуєш мій день !!
— учень

3

Якби ця помилка теж була, причина була проста, але не очевидна: неправильний пароль. Не знаю, чому я не отримав просто "Не вдалося ввійти" зі свіжовстановленого сервера SQL 2016.


3

Так, ця помилка могла бути "щось не вдалося, удача з'ясувати, що" - У моєму випадку це було неправильне ім'я користувача. SQL Server 2019 RC1.


2

У мене той самий проплем "З’єднання було успішно встановлено із сервером, але тоді під час входу в систему сталася помилка. (Постачальник: Постачальник спільної пам'яті, помилка: 0 - На іншому кінці каналу немає жодного процесу.")

Мій зв’язок:

сервер = POS06 \ SQLEXPRESS; AttachDbFilename = C: ... \ Datas.mdf; Початковий каталог = Дані; Ідентифікатор користувача = sa; Pwd = 12345; Час очікування підключення = 10;

Але мій SQL - POS06 \ MSQL2014

Змініть рядок з'єднання на

сервер = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; Початковий каталог = Дані; Ідентифікатор користувача = sa; Pwd = 12345; Час очікування підключення = 10;

це спрацювало.


0

переконайтеся, що ви вказали користувача в Безпека-> Входи, якщо ні - додайте його та спробуйте ще раз.


0

Виконайте іншу відповідь, і якщо вона все ще не працює, перезавантажте комп'ютер, щоб ефективно перезапустити службу SQL Server у Windows.


Ви також можете зазвичай перезапустити службу SQL для вашої конкретної бази даних, розмістивши її вservices.msc
— Zimano

0

Завжди намагайтеся увійти, використовуючи ці облікові дані за допомогою SQL Management Studio. Це може відкрити ще деякі деталі, які ви не отримуєте під час виконання у своєму коді. Я перевірив аутентифікацію SQL + Windows, перезапустив сервер, але досі мені не повезло. Після спроби увійти за допомогою SQL Management, я отримав таке запит:

скріншот

Якось термін дії пароля закінчився, хоча логін було створено за кілька хвилин до цього. У будь-якому випадку, новий набір паролів, рядок підключення оновлено, і все в порядку.

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