На другом конце конвейера нет процессов (SQL Server 2012)


96

У меня такая ошибка:

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 blog.sqlauthority.com/2009/05/21/…
GeoVIP 03

Это сработало для меня, когда я повторно подключился с аутентификации сервера к аутентификации Windows.
ганджи раджкумар

1
Что сработало для меня (sql express 2016) ... Удаление смешанной аутентификации, оставив только Windows auth, перезапуск службы, переключение обратно на смешанную аутентификацию, перезапуск службы. пока я не сделал это, ничего не исправило ошибку Нет процесса
Ростол

1
Насколько это стоит, проверьте строку подключения в вашем файле конфигурации. Что касается меня, кто-то изменил одно из имен серверов и зарегистрировал его. Мой код пытался попасть в базу данных, которой не было на моем сервере.
camainc

у меня тоже не работает.
Сэм

Ответы:


126

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

Итак, ответ: переключитесь с Windows на аутентификацию SQL :

  1. Щелкните правой кнопкой мыши имя сервера и выберите properties;
  2. Выберите securityвкладку;
  3. Включите SQL Server and Windows Authentication mode;
  4. Перезапустите службу SQL Server.

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


5
Параметр был установлен правильно, поэтому я проверил «Проверка подлинности Windows», перезапускаю службу, затем проверяю «Проверка подлинности Windows + Проверка подлинности SQL», чтобы исправить эту проблему. Так счастлив!
Groco

2
Чтобы прояснить комментарий @ Groco: Войдите, используя Windows Authentication>> Щелкните правой кнопкой мыши свой сервер >> Properties>> Security(Под Select a page) >> Под Server Authenticationвыбором SQL Server and Windows Authentication mode. Закройте SQL Server Management Studio, перезапустите службу SQL Server и попробуйте снова войти в систему.
Минь Тран,

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
Минь Тран

большое спасибо. reatart служба Sql устранила мою проблему.
user1282609

58

Чтобы решить эту проблему, подключитесь к SQL Management Studio с помощью проверки подлинности Windows, затем щелкните правой кнопкой мыши узел сервера «Свойства» -> «Безопасность» и включите режим проверки подлинности SQL Server и Windows. Если вы используете sa, убедитесь, что учетная запись включена. Для этого откройте «sa» в разделе «Логины» и просмотрите статус.

включить sa admin

Если это не сработало, вам может потребоваться переустановить SQL Server.


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

27

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


3
Это решило мою проблему после попытки всех других исправлений.
mini998

1
Разве это не должно сопровождаться большой предупреждающей надписью о том, что перезапуск службы сервера sql только потому, что вы не можете подключиться, сломает другие вещи, которые были успешно подключены?
undrline

Это отлично сработало для меня. Я вижу, как легко людям пренебречь этим решением.
TechnicalTim

19

Итак, недавно у меня тоже было это для интегрированной безопасности. Оказалось, что мою проблему на самом деле довольно просто исправить, но в основном потому, что я забыл добавить «Trusted_Connection = True» в строку подключения.

Я знаю, что это может показаться довольно очевидным, но на это у меня ушло около 20 минут, пока я не понял, что я скопировал свой формат строки подключения с connectionstrings.com, и эта часть строки подключения отсутствовала.

Просто и я чувствую себя немного глупо, но это был ответ для меня.


Я перепробовал все комментарии, но ничего не вышло. Ваше решение сработало для меня идеально. Большое спасибо.
Royal.O 06

это было последнее, что я пробовал после того, как все остальные проверки tcp были включены, добавлена ​​аутентификация в смешанном режиме и перезапущена служба браузера sql, и это сработало. спасибо
Myke Black

10

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

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

Итак, вот чек-лист:

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

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

Когда я перешел на 127.0.0.1, я получил сообщение об ошибке Message = Ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 26 - Ошибка при обнаружении указанного сервера / экземпляра) Источник = Core .Net Поставщик данных SqlClient
Кирстен Грид

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

Аутентификация SQL Server в смешанном режиме сделала это за меня. Ребята, если вы делаете новую установку SQL Server Express, когда вы хотите добавить пользователя для своих программных нужд, вам нужно изменить его на смешанный режим, иначе будет доступна только проверка подлинности Windows.
Эдуардо

Это (вроде) сработало. Как только я изменил ерунду localdb на 127.0.0.1, она прошла.
Эрик

9

Пожалуйста, проверьте это также. введите описание изображения здесьТакже проверьте конфигурацию TCP / IP, Names PipeLine и включена общая память.


8

Если вы пытаетесь войти с учетными данными SQL, вы также можете попробовать изменить LoginMode для 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 и повторите попытку.

это наиболее подходящий ответ.
суш

РАБОТАЕТ как шарм!
Asim

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; Начальный каталог = Datas; ID пользователя = sa; Pwd = 12345; Время ожидания подключения = 10;

Но мой SQL - это POS06 \ MSQL2014

Измените строку подключения на

сервер = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; Начальный каталог = Datas; ID пользователя = sa; Pwd = 12345; Время ожидания подключения = 10;

это сработало.


0

убедитесь, что вы указали пользователя в Security-> Logins, если нет - добавьте его и попробуйте еще раз.


0

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


Вы также можете перезапустить службу SQL для своей конкретной базы данных, services.msc
указав

0

Всегда пытайтесь войти в систему, используя эти учетные данные с помощью SQL Management Studio. Это может раскрыть некоторые дополнительные детали, которых вы не получите во время выполнения в своем коде. Я проверил аутентификацию SQL + Windows, перезапустил сервер, но все равно не повезло. После попытки войти в систему с помощью SQL Management я получил следующее приглашение:

снимок экрана

Каким-то образом срок действия пароля истек, хотя логин был создан буквально за несколько минут до этого. В любом случае, новый пароль установлен, строка подключения обновлена ​​и все в порядке.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.