22

首先让我说,我知道这个线程和网络上的其他人试图解决这个问题。

那里发布的解决方案不适用于我的问题。在决定提出这个问题之前,我花了 5 个小时试图解决这个问题。

问题:当我尝试使用 SQL 身份验证登录 SSMS(或从 Java 应用程序连接)时,出现此错误:

与服务器成功建立连接,但在登录过程中出现错误。(提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)(Microsoft SQL Server,错误:233)

虽然它确实有效,但我不能选择使用集成身份验证。我尝试连接的数据库与我的 SSMS 实例位于同一台机器上。没有网络,这是一个独立的系统。

在我的配置中启用了命名管道,我已经重新启动,因为在我的配置中,TCP IP 的优先级高于命名管道。

我什至已经卸载 SQL Server 并重新安装它,但无济于事。

我的 SQL Server 实例的详细信息如下:

Microsoft SQL Server Management Studio - 10.0.2531.0
Microsoft Analysis Services Client Tools - 10.0.1600.22
Microsoft Data Access Components (MDAC)  - 6.1.7601.17514
Microsoft MSXML - 3.0 5.0 6.0 
Microsoft Internet Explorer - 9.0.8112.16421
Microsoft .NET Framework - 2.0.50727.5466
Operating System     - 6.1.7601

详细配置如下: http://i45.tinypic.com/vxdz7c.png http://i45.tinypic.com/vxdz7c.jpg

我使用此代码从 java 连接。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;integratedSecurity=false;User=JIMBO; Password=JIMBO;";
Connection con = DriverManager.getConnection(connectionUrl);

但请记住,当我尝试直接登录 SSMS 时也会出现此错误。提前致谢。

-吉姆

4

13 回答 13

28

要强制使用 TCP/IP,请将连接字符串中的 localhost 替换为 127.0.0.1。

当您使用用户名和密码时,请确保启用 SQL 身份验证。默认情况下,在 sqlserver 2008 上仅启用 Windows 集成。

使用 SqlServer 身份验证时,请记住密码策略已到位以强制执行安全性。

于 2013-03-23T10:53:54.290 回答
4

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

所以,这里是到目前为止的清单:

  • 确保在配置管理器中启用了命名管道(不要忘记重新启动服务器)。
  • 确保启用SQL Server 身份验证(或混合模式)。
  • 确保您的用户名和密码正确。
  • 确保您要连接的数据库存在。
于 2015-05-10T07:56:45.710 回答
2

我的解决方案是使用 Windows 登录然后转到安全>登录找到有问题的 ID 并重新输入使用的密码。重启服务...

于 2013-11-26T23:01:48.063 回答
2

将“user instance=False”添加到连接字符串为我解决了这个问题。

<connectionStrings>
  <add name="NorthwindEntities" connectionString="metadata=res://*/Models.Northwind.csdl|res://*/Models.Northwind.ssdl|res://*/Models.Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS2008R2;attachdbfilename=|DataDirectory|\Northwind.mdf;integrated security=True;user instance=False;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
于 2015-01-17T16:27:08.730 回答
1

这个问题是由应用程序错误日志中出现的这个错误引起的。

“向客户端发送数据时,对大型对象的读取操作失败。常见原因是应用程序在 READ UNCOMMITTED 隔离级别运行。此连接将被终止。”

我将 PDF 存储在 SQL 表中,当尝试从该表中进行 SELECT 时,它会吐出该错误,从而导致您的问题中提到的错误。

解决方案是删除包含大量文本的列,在我的例子中是 Base64 编码文件。

于 2014-05-01T16:54:07.593 回答
1

也许这来得太晚了,但为其他人“记录”它仍然是件好事。

在带有 MS SQL Server 2012 的 MS Server 2012 上尝试和测试远程桌面服务后,我收到了同样的错误。

在远程桌面服务安装过程中,要求创建一个(本地)证书,我就这样做了。完成测试/实验后,我删除了远程桌面服务。就在那时出现了这个错误(我不能说这个错误是否发生在使用 RDS 的测试期间,我不记得我是否在 RDS 测试期间使用/尝试过 SQL 连接)。

我不知道如何解决这个问题,因为默认证书对我不起作用,但“RDS”证书可以。

顺便说一句,证书位于应用程序:“SQL Server 配置管理器”->“SQL Server 网络配置”-> 右键单击​​:“协议”-> 选择“属性”-> 选项卡“证书”

我的默认 SQL 证书名为:ConfigMgr SQL Server 标识证书,到期日期:2114-06-09。

希望这可以给其他人一个提示。

/金

于 2014-11-25T11:15:26.187 回答
1

对我来说,这是因为只启用了 Windows 身份验证。更改安全认证模式。在 SQL Server Management Studio 对象资源管理器中,右键单击服务器,然后单击“属性”。在“安全”页面的“服务器身份验证”下,选择新的服务器身份验证模式,然后单击“确定”。更改服务器身份验证模式 - MSDN - Microsoft https://msdn.microsoft.com/en-AU/library/ms188670.aspx

于 2015-10-30T04:42:09.383 回答
0

这可能有助于作为参考

我遇到了同样的问题,在本网站和其他网站上多次试用建议的解决方案后,我找到了适合我的方案的解决方案。帐户被锁定 如何检查帐户是否被锁定... 使用更高权限的帐户(如 SA 或管理员权限)登录服务器 展开安全性==> 选择登录名==> 打开属性窗口login ==> 在属性窗口中选择状态页面

确保这3件事 1,连接数据库的权限已授予 2,登录已启用 3,状态 SQL 服务器身份验证登录未锁定(取消选中该框

谢谢齐格

于 2015-08-11T21:40:30.963 回答
0

我只是通过将它添加为第一条语句来执行 connection.close() 并解决了。然后我删除了这条线。

于 2016-01-29T09:37:50.967 回答
0

对此进行跟进。我安装了只有 Windows 身份验证的 SQL Server 2014。启用混合模式后,我无法使用 SQL 用户登录,并收到与原始海报相同的错误消息。我验证了命名管道已启用,但在几次重新启动后仍然无法登录。使用 127.0.0.1 而不是主机名允许我登录,但有趣的是,在首次登录时需要密码重置提示:

SQL Server 密码重置提示

一旦我重置密码,该帐户就可以工作。奇怪的是,我专门禁用了密码策略和过期。

于 2016-04-26T19:57:15.753 回答
0

另一个原因是用户的默认数据库不可用。

我有一个用于备份两个数据库的帐户。当备份用户的默认数据库脱机时,“管道另一端没有进程”错误开始。

于 2017-02-20T12:33:50.133 回答
0

来到这里寻找类似问题的解决方案,我刚刚通过使用 Nartac 的“IIS Crypto”更改我们的 IIS 服务器的 Schannel 设置来介绍这个问题......通过禁用 SHA-1 哈希,本地 SQL Server 无法成为达到了,即使我没有使用加密连接(对于使用共享内存访问本地 SQL Express 实例的 ASP.Net 站点没有用处)。

'SHA' 哈希算法需要激活 SQL Server 才能连接

感谢零计数为我指明了正确的方向:-)

因此,吸取的教训:如果您有本地 SQL Server 实例,请不要在 IIS 服务器上禁用 SHA-1。

于 2017-08-20T14:45:59.627 回答
0

对我来说,这个问题似乎是由电源故障引起的。重新启动服务器计算机解决了它。

于 2017-08-28T01:44:00.347 回答