管道的另一端没有进程(SQL Server 2012)

Ite*_*tor 71 sql-server sql-server-2012

我有这个错误:

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)
Run Code Online (Sandbox Code Playgroud)

我知道,这个网站上有类似的问题,答案是,启用TCP/IP和管道.但是我启用了两个,但仍然不起作用:

MSSQL错误

我使用的是Microsoft SQL Server 2012,用户拥有完全权限.

Ite*_*tor 81

默认情况下,服务器仅设置为Windows身份验证.没有任何通知,错误的起源就是这样,因此很难弄明白.即使您仅使用SQL身份验证创建用户,SQL Management工作室也不会发出警报.

所以答案是:从Windows切换到SQL身份验证:

  1. 右键单击服务器名称并选择properties;
  2. 选择security标签;
  3. 启用SQL Server and Windows Authentication mode;
  4. 重新启动SQL Server服务.

您现在可以使用您的登录名/密码进行连接.

  • 该选项已正确检查,因此我检查了"Windows身份验证",我重新启动该服务,然后检查"Windows身份验证+ SQL身份验证"以解决该问题.很高兴! (3认同)
  • 要阐明@Groco的评论,请执行以下操作:使用Windows身份验证登录>>右键单击服务器>>属性>安全性(在“选择页面”下)>>在“服务器身份验证”下,选择“ SQL Server”,然后Windows身份验证模式`。关闭SQL Server Management Studio,重新启动SQL Server服务,然后尝试再次登录。 (2认同)
  • 对于像我这样看到这个答案并追查它的人也可以看到下面的答案“此错误的另一个原因可能是数据库名称不正确或不存在。”。我追踪身份验证设置和网络设置,结果发现这是数据库名称上古老的“下划线与破折号”问题:-{ (2认同)

小智 53

要解决此问题,请使用Windows身份验证连接到SQL Management Studio - 如果这不起作用,则可能需要重新安装SQL Server - 然后右键单击服务器节点"属性" - >"安全性"并启用SQL Server和Windows身份验证模式.如果您使用'sa',请确保该帐户已启用.要执行此操作,请在"登录"下打开"sa"并查看"状态".

启用sa admin


No *_*ame 15

您也可以尝试转到服务并重新启动Sql server实例在此输入图像描述

  • 这在尝试所有其他修复后解决了我的问题. (2认同)

Joe*_*ers 9

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

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

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

  • 我尝试了所有评论,但没有成功。你的解决方案对我来说非常完美。非常感谢。 (2认同)

Muh*_*lal 8

请检查一下 在此输入图像描述 同时检查配置TCP/IP,名称PipeLine和共享内存是否已启用


小智 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,然后重试.


Moh*_*han 6

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

所以,这是清单:

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


Gro*_*oco 5

我第二次遇到这个问题,之前的所有答案都失败了,幸运的是,以下请求可以完成这项工作:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go
Run Code Online (Sandbox Code Playgroud)


Ben*_*ert 5

对我来说,我的登录用户的密码已过期,我也遇到了同样的异常。然后我使用 Windows 身份验证模式登录并更改关联用户的密码,它解决了我的问题。


Ans*_*sss 5

是的,这个错误也可能是“某件事失败了,祝你好运,弄清楚是什么”——就我而言,这是一个错误的用户名。SQL Server 2019 RC1。