На іншому кінці труби немає жодного процесу (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.