2

我无法使用 SQL Server Management Studio 连接到我的本地 SQL Server 2008 Express 实例。

我相信这个问题与我对连接协议所做的更改有关。在错误发生之前,我启用了共享内存并禁用了命名管道和 TCP/IP。然后我启用了命名管道和 TCP/IP,这就是我开始遇到问题的时候。

当我尝试使用 SSMS(使用我的 SQL 服务器系统管理员登录或 Windows 身份验证)连接到服务器时,我收到以下错误消息:

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

为什么它返回命名管道错误?为什么它不只使用共享内存,因为它在连接协议列表中具有更高的优先级顺序?似乎由于某种原因它没有在共享内存上监听?

当我将命名管道设置为启用并尝试连接时,我收到相同的错误消息。

我的 Windows 帐户在我的计算机上没有管理员权限 - 也许这在某种程度上有所不同(正如本文中 关于“SuperSocketNetLib\Lpc”注册表项的一些讨论所暗示的那样)。

4

4 回答 4

4

有同样的问题。这是为我解决的问题:

  1. 打开 SQL 管理工作室
  2. 通过我用来设置实例的管理员帐户连接
  3. 从对象资源管理器中选择服务器
  4. 鼠标右键属性
  5. 服务器属性打开
  6. 转到安全
  7. 将其从 Windows 身份验证模式更改为 SQL Server 和 Windows 身份验证模式
于 2012-02-14T18:14:29.480 回答
3

我滴了谷歌教的所有东西,但无法成功连接 TCP/IP。然后我执行以下步骤使其在我的家用计算机上工作:

步骤 1. 在 SQL Server 网络配置中为您的数据库实例启用 TCP/IP。
步骤 2. 选择 TCP/IP 的属性并单击 IP 地址选项卡。
步骤 3. 停用除 127.0.0.1 之外的所有 IP 地址。
步骤 4. 在 127.0.0.1 和 IPALL 中将 TCP 端口设置为 1433。
步骤 5. 重启 sql server 服务。
步骤 6. 在 Toad for SQL Server 免费软件中使用“127.0.0.1\SQLEXPRESS,1433”将其与 TCP/IP 连接,它可以工作!
步骤 7. 用 php 中的相同服务器字符串连接它,它可以工作!
步骤 8. 如果你需要像我一样将中文字符串读入 php 程序,请下载 MS SQL Server 驱动程序 for PHP(相信我,甚至不要尝试 php_mssql 的东西,它会让你对中文数据发疯)。对于 PHP 5.2x,使用 ts_VC6 版本。对于 5.3X,使用 ts_VC9 版本(尤其是在 Win7 中时)。
步骤 9. 编辑 php.ini(对于 Appserv,它在 C:\Windows7 下;对于 WAMPserver 2.2,它在 c:\wamp\bin\php\php5.3.8 下),找到 extension=... 行组。添加 'extension = 您要使用的特定 sql erver driver dll 文件名。
step 10. 解压第8步下载的文件,将具体的dll(或全部复制)复制到php扩展目录(可以在php.ini的extension_dir=...行找到)。对于 Appserv,您最好也将其复制到 c:\windows\system32(不要问我为什么?)。
step 11.重启Appserv的apache服务或者重启Wampserver。

现在您可以使用 TCP/IP 与 SQL Server 2008 连接,并且可以正确地将 utf-8 字符串(在我的情况下)读入 php 程序。

希望这可以帮助那些像我一样正在寻找这个解决方案的人。

于 2011-11-27T05:41:51.543 回答
0

由于现在您无法连接到 SQL Server 来禁用命名管道,因此您必须强制建立 TCPIP 连接。

就是这样:

单击START / RUN然后运行该cliconfg.exe实用程序。在此,为您的服务器创建一个别名(您可以使用相同的名称)并为TCPIP设置默认值

这应该通过命名管道强制 TCPIP 并可能让你连接。

尝试连接到您在 CliConfg 中使用的别名,它现在将使用 TCPIP 进行连接。

于 2010-03-23T13:58:31.940 回答
0

我有这个完全相同的问题。我会尝试连接ASHWHVM004\SQLEXPRESS,我会收到连接失败的消息。如果我明确要求Shared Memory,它会正常工作。Shared Memory, Named Pipes, 并且TCP/IP都被启用。

我似乎通过执行以下操作“修复”了它:

  1. 我打开Sql Server Configuration Manager并深入到SQL Server Network Configuration> Protocols for SQLEXPRESS
  2. 我禁用了除Shared Memory.
  3. 我重新启动了SQLEXPRESS服务实例并尝试像以前一样连接。它工作得很好。
  4. 我启用TCP/IPNamed Pipes重新启动SQLEXPRESS服务实例并尝试像以前一样连接。它工作得很好。

要么我在此过程中做了其他一些我不记得的修复它,要么禁用和重新启用的行为导致一些有趣的位以正确的方式翻转回来。

祝你好运!

于 2010-06-04T16:24:08.307 回答