【问题标题】:sqlcmd.exe - Shared Memory Provider: No process is on the other end of the pipesqlcmd.exe - 共享内存提供程序:管道的另一端没有进程
【发布时间】:2019-09-16 19:12:24
【问题描述】:

我已经阅读了许多关于该错误的帖子和文章:

共享内存提供程序:管道的另一端没有进程。 通讯链路故障。

...包括这些:

Error message: (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

https://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

我可以通过混合模式和 Windows 身份验证轻松且始终通过 SSMS 进行连接。但是每当我尝试通过sqlcmd.exe 运行sql 脚本时,我都会收到上面显示的错误。

这是我从 Windows 命令 shell 运行的内容:

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe" -S localhost -U sa -P myPassword -i "F:\<mypath>\<myfile>.sql"

这是我尝试/验证过的:

  1. 我在 Windows 10 上运行 SQL Server version 14.0
  2. 混合模式身份验证已启用,我可以从 SSMS 连接。
  3. 我尝试在命令行中指定 127.0.0.1 而不是 localhost
  4. 共享内存协议已启用。
  5. 已启用命名管道协议。
  6. TCP/IP 已启用。
  7. 我的 SQL Server 服务正在运行 - 我可以从 SSMS 进行连接。
  8. 我在 Windows 防火墙中打开了入站和出站端口 1433,并且我的防火墙允许 SQL Server(作为应用程序)。 (即使我关闭了防火墙,我仍然会遇到同样的错误。)
  9. 远程连接已启用。
  10. SQL Server Browser 服务已启用并正在运行。
  11. SQL Server 代理已启用并正在运行(尽管我认为这没有必要)。
  12. 我已经重新启动了 SQL Server 服务并重新启动了几次。

最重要的:这一定与我的输入文件有关,该文件超过 200 Mb。当我运行与上面相同的 cmd-line 语句,而是指向 test.sql(它只包含 select getdate())时,它可以完美运行。没有错误,没有连接问题。

在我尝试了一切之后,我永远都会遇到同样的错误。我还能尝试什么?

【问题讨论】:

  • 您在 SQL Server 错误日志中看到任何相关消息吗?

标签: sql-server sqlcmd


【解决方案1】:

感谢this post,我终于弄明白了。我不得不添加-a 32767 作为命令行参数,大概是因为我的输入脚本很大。 Infernal sqlcmd 可以给出更真实的错误信息,而不是假装它无法连接。连接从来都不是问题。无论如何,我希望这可以帮助其他人。

【讨论】:

    【解决方案2】:

    正如@HerrimanCoder 所建议的,-a 32767 参数解决了这个问题,在我的例子中,我正在运行一个脚本 2 个脚本,分别为 1.4GB 和 1.6GB。

    我在个人计算机上安装了全新的 SQL Server 2019。没有启用Named Pipes和TCP/IP,我打开了,再试一次,失败了,然后加了参数,顺利执行了。

    感谢您的帮助。

    【讨论】:

      【解决方案3】:

      我也遇到了同样的情况,我尝试启用 TCP IP、共享内存和名称管道对我没有帮助,我遵循的是来自 medium post

      它说要添加一个参数,它对我来说就像一个魅力,检查完整的步骤。

      【讨论】:

        【解决方案4】:

        在我的情况下,即使通过 SSMS 连接没有问题,我的应用程序也无法连接到数据库实例。这只是因为我在连接字符串中的用户名不在数据库的用户列表中(有人删除了它)。 SQL 服务器应该简单地说“找不到用户名 'xx'”,而不是这个复杂的!

        【讨论】:

          猜你喜欢
          • 2011-12-25
          • 1970-01-01
          • 1970-01-01
          • 2015-01-31
          • 2014-09-01
          • 1970-01-01
          • 2018-03-26
          • 2011-06-06
          • 1970-01-01
          相关资源
          最近更新 更多