![无法连接到 SQL Server 2008 - 看起来像是共享内存问题](https://linux22.com/image/509307/%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%88%B0%20SQL%20Server%202008%20-%20%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%83%8F%E6%98%AF%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98.png)
我无法使用 SQL Server Management Studio 连接到我的本地 SQL Server 2008 Express 实例。
我认为问题与我对连接协议所做的更改有关。在发生错误之前,我启用了共享内存并禁用了命名管道和 TCP/IP。然后我启用了命名管道和 TCP/IP,这时我开始遇到问题。
当我尝试使用 SSMS(使用我的 SQL 服务器 sysadmin 登录或使用 Windows 身份验证)连接到服务器时,收到以下错误消息:
已成功与服务器建立连接,但在登录过程中出现错误。(提供程序:命名管道提供程序,错误:0 - 管道另一端没有进程。)(Microsoft SQL Server,错误:233)
为什么它返回了命名管道错误?为什么它不直接使用共享内存,因为它在连接协议列表中具有更高的优先级?似乎由于某种原因它没有监听共享内存?
当我将命名管道设置为启用并尝试连接时,我收到相同的错误消息。
我的 Windows 帐户在我的计算机上没有管理员权限 - 也许这在某种程度上有所作为(正如这个帖子关于“SuperSocketNetLib\Lpc”注册表项似乎暗示)。
顺便说一句,我尝试过重启 SQL Server 服务,也尝试过让某人使用管理员账户登录机器来重启 SQL Server 服务。还是没成功。
答案1
尝试启用命名管道,禁用 TCP/IP 和共享内存
答案2
就我而言,我将连接模式从 Windows 身份验证模式更改为 SQL Sever 和 Windows 身份验证模式。然后它就可以工作了!
答案3
启用 SQL Browser 服务。由于 Express 是一个命名实例,因此它不会监听 SSMS 期望的默认端口。您还可以尝试在 SSMS 中强制连接到命名管道,在连接对话框中,单击“选项”,然后将“网络协议”设置为“命名管道”