管道的另一端没有进程(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,并且用户具有完全权限。


尝试皮纳尔戴夫解决方案blog.sqlauthority.com/2009/05/21/...
GeoVIP

当我从服务器身份验证重新连接到Windows身份验证时,这对我有用。
ganji raajkumar

1
什么对我有用(SQL Express 2016)...删除混合身份验证,仅保留Windows身份验证,重新启动服务,将其切换回混合身份验证,重新启动服务。直到我什么都不做,才解决了No process error
Rostol

1
对于它的价值,请检查配置文件中的连接字符串。对我来说,有人修改了其中一个服务器名称并签入。我的代码试图访问服务器上不存在的数据库。
camainc

Answers:


120

默认情况下,仅将服务器设置为Windows身份验证。没有任何通知,错误的根源在于,所以很难弄清楚。即使仅使用SQL身份验证创建用户,SQL Management Studio也不会发出警报。

因此答案是:从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 Authenticationselect 下登录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

非常感谢。reatart的Sql Service解决了我的问题。
user1282609

57

要解决此问题,请使用Windows身份验证连接到SQL Management Studio,然后右键单击服务器节点“属性”->“安全性”,然后启用SQL Server和Windows身份验证模式。如果您使用“ sa”,请确保已启用该帐户。为此,请在“登录名”下打开“ sa”并查看状态。

启用管理员

如果这样做不起作用,则可能需要重新安装SQL Server。


完成此操作后,重新启动SQL Server。然后尝试登录。
Webucator

25

您也可以尝试转到服务并重新启动Sql Server实例在此处输入图片说明


3
尝试了所有其他修复程序后,这解决了我的问题。
mini998

嗯,这是否不应该带有一个大警告标签,即仅由于您无法连接而重新启动sql server服务会破坏其他已成功连接的东西?
解散

这对我来说很棒。我可以看到人们忽略此解决方案有多么容易。
TechnicalTim

17

因此,最近我也有这个功能,用于集成安全性。事实证明,我的问题实际上很容易解决,但是主要是因为我忘记在连接字符串中添加“ Trusted_Connection = True”

我知道这似乎很明显,但是它让我花了20分钟左右,直到我意识到我已经从connectionstrings.com复制了我的连接字符串格式,而连接字符串的那一部分丢失了。

很简单,我有点傻,但这就是我的答案。


我尝试了所有评论,但是没有用。您的解决方案对我来说非常完美。非常感谢你。
Royal.O

这是在启用所有其他检查tcp,添加混合模式身份验证并重新启动sql浏览器服务之后才尝试的最后一件事。谢谢
Myke Black

10

此错误的另一个原因可能是数据库名称不正确或不存在。

强制进行TCP / IP连接(通过提供127.0.0.1而不是localhost.)可以揭示错误的真正原因。就我而言,连接字符串中指定的数据库名称不正确。

因此,这是清单:

  • 确保在配置管理器中启用了命名管道(不要忘记重新启动服务器)。
  • 确保要连接的数据库存在。
  • 确保启用了SQL Server身份验证(或混合模式)。

Express 2016中的配置管理器发生了什么?我看不到它吗?哦,我现在必须立即运行SQLServerManager13.msc
Kirsten Greed '18

当我更改为127.0.0.1时,收到错误消息Message =与SQL Server建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。(提供者:SQL网络接口,错误:26-错误指定服务器/实例的位置)Source = Core .Net SqlClient数据提供程序
Kirsten Greed

1
@kirsteng检查已安装的SQL Server实例。您是否安装了默认实例(MSSQLSERVER)?
Mohammad Dehghan

混合模式下的SQL Server身份验证为我做到了。伙计们,如果您全新安装了SQL Server Express,则当您要添加自己的编程序需求的用户时,需要将其更改为混合模式,否则只能使用Windows身份验证。
Eduardo '18

这(某种)有效。一旦将localdb废话更改为127.0.0.1,它就通过了。
埃里克(Eric)


7

如果尝试使用SQL凭据登录,也可以尝试在注册表中更改SQL Server的LoginMode,以允许SQL Server和Windows身份验证。

  1. 打开注册表
  2. 转到SQL实例密钥(可能因实例名称而异):Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. 将LoginMode设置为2

在此处输入图片说明

  1. 重新启动SQL服务和SQL Server Management Studio,然后重试。

这是最合适的答案。

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

我有同样的问题“与服务器成功建立了连接,但是在登录过程中发生了错误。(提供者:Shared Memory Provider,错误:0-管道的另一端没有进程。”)

我的联系是:

服务器= POS06 \ SQLEXPRESS; AttachDbFilename = C:... \ Datas.mdf;初始目录=数据; 用户ID = sa; Pwd = 12345; 连接超时= 10;

但是我的SQL是POS06 \ MSQL2014

将连接字符串更改为

服务器= POS06 \ MSQL2014; AttachDbFilename = C:... \ Datas.mdf;初始目录=数据; 用户ID = sa; Pwd = 12345; 连接超时= 10;

有效。


0

确保已在“安全性”->“登录名”中指定了用户,如果没有,请添加该用户,然后重试。


0

按照另一个答案进行操作,如果仍然无法正常运行,请重新启动计算机以有效地重新启动Windows上的SQL Server服务。


通常,也可以通过将其定位在services.msc
Zimano

0

始终尝试通过SQL Management Studio使用这些凭据登录。这可能会揭示一些您在运行时未在代码中获得的更多细节。我已经检查了SQL + Windows身份验证,重新启动了服务器,但是仍然没有运气。尝试使用SQL Management登录后,出现以下提示:

屏幕截图

尽管登录是在几分钟前创建的,但密码已经过期了。无论如何,设置了新密码,更新了连接字符串,一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.