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

时间:2014-12-03 09:14:09

标签: 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)

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

MSSQL error

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

18 个答案:

答案 0 :(得分:48)

要解决此问题,请使用Windows身份验证连接到SQL Management Studio,然后右键单击服务器节点Properties-> Security并启用SQL Server和Windows身份验证模式。如果你正在使用' sa'确保帐户已启用。要做到这一点,打开' sa'在登录并查看状态。

enable sa admin

如果这不起作用,您可能需要重新安装SQL Server

答案 1 :(得分:47)

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

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

  1. 右键单击服务器名称,然后选择properties;
  2. 选择security标签;
  3. 启用SQL Server and Windows Authentication mode;
  4. 重新启动SQL Server服务。
  5. 您现在可以使用您的登录名/密码进行连接。

答案 2 :(得分:13)

此外,您可以尝试转到服务并重新启动Sql server实例enter image description here

答案 3 :(得分:8)

请同时检查enter image description here并检查配置TCP / IP,名称PipeLine和已启用共享内存

答案 4 :(得分:6)

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

所以,这是清单:

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

答案 5 :(得分:6)

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

  1. 打开注册表
  2. 转到SQL实例键(可能因实例名称而异): 计算机\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. 将LoginMode设置为2
  4. enter image description here

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

答案 6 :(得分:4)

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

b10

答案 7 :(得分:3)

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

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

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

答案 8 :(得分:2)

我有同样的问题 “已成功与服务器建立连接,但随后发生错误 在登录过程中。 (提供者:共享内存提供者,错误:0 - 没有进程 在管道的另一端。)“

我的联系是:

服务器= POS06 \ SQLEXPRESS; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas;用户ID = sa; PWD = 12345;连接超时= 10;

但我的SQL是POS06 \ MSQL2014

将连接字符串更改为

server = POS06 \ MSQL2014; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas;用户ID = sa; PWD = 12345;连接超时= 10;

它有效。

答案 9 :(得分:2)

对我来说,我的登录用户的密码已过期,并且我得到了同样的例外。 然后我使用Windows身份验证模式登录并更改相关用户的密码,它解决了我的问题。

答案 10 :(得分:2)

也存在此错误,原因很简单,但并不明显:密码错误。不知道为什么我不能从刚安装的SQL 2016服务器中获得“登录失败”的信息。

答案 11 :(得分:2)

是的,此错误也很可能是“某事失败,祝您好运。”-在我看来,这是一个错误的用户名。 SQL Server 2019 RC1。

答案 12 :(得分:1)

就我而言,通过 VPN 远程登录工作正常。但是从安装了sql server的服务器连接,失败了。

事实证明,实例名称不是默认的,例如。 SQLEXPRESS。因此,需要在连接时显式指定。

enter image description here

enter image description here

服务器名称:. 例如。 ".\I01"

如果我是远程连接,则不必这样做,只需 ,

答案 13 :(得分:1)

就我而言:为用户分配系统管理员角色。

  1. 以 Windows 身份验证用户身份登录
  2. 转到:安全->登录->右键单击用户->将服务器角色分配为系统管理员

答案 14 :(得分:1)

在我的情况下,数据库已恢复,并且已经有用于连接的用户。我不得不在数据库中删除用户并重新创建登录的用户映射。

  1. 删除用户

    DROP USER [MyUser]
    

如果用户拥有任何架构,它可能会失败。在删除用户之前,必须将这些分配给 dbo。使用下面的第一个查询获取用户拥有的架构,然后使用第二个查询更改这些架构的所有者(HangFire 是从前一个查询中获得的架构)。

select * from information_schema.schemata where schema_owner = 'MyUser'
ALTER AUTHORIZATION ON SCHEMA::[HangFire] TO [dbo]     
  1. 更新用户的用户映射。在管理工作室中,转到安全-> 登录-> 打开用户-> 转到用户映射选项卡-> 启用数据库并授予适当的角色。

答案 15 :(得分:1)

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

screenshot

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

答案 16 :(得分:0)

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

答案 17 :(得分:0)

确保您在Security->中指定了用户登录,如果没有 - 添加它并重试。