HeidiSql连接到MS SQL Server LocalDB

28

我一直在尝试使用HeidiSql和Windows身份验证连接到附加到LocalDB实例(localdb)\v11.0的SQL Server数据库,但都失败了。

我的测试显示,HeidiSql可以通过以下方式连接到永久安装的MSSQLSERVER和SQLEXPRESS实例:

MSSQLSERVER:

  • SQL Server: (命名管道)
  • 主机名/IP: .
  • 使用Windows身份验证

SQLEXPRESS:

  • SQL Server: (命名管道)
  • 主机名/IP: .\SQLEXPRESS
  • 使用Windows身份验证

但是连接到LocalDB却很困难。

我的观察表明,LocalDB实例是由Visual Studio和SQL Server Management Studio根据需要创建的幻影。当这些程序没有运行时,它们不会持续存在或存在。当这些程序正在运行时,访问被隐藏在这些程序中,其他应用程序无法使用。

我知道我可以将MSSQLSERVER或SQLEXPRESS切换为我的Visual Studio应用程序的标准数据库服务器,但我想知道是否有途径连接到HeidiSql的LocalDB实例。


LocalDB 是 SQL Server Express 的一种变体,当应用程序需要它时会按需加载。所以,是的 - 它可能有点“难以捉摸” - 但是,有 sqllocaldb 工具可以让您根据需要启动 LocalDB 实例,然后它们会一直保持活动状态,直到您再次关闭它们。搜索 sqllocaldb 并了解如何使用它! - marc_s
可能是使用HeidiSQL无法连接到LocalDB的重复问题。 - SQB
虽然这是一个老问题,但它仍然是一个好问题。在尝试了各种主机名/IP 变体之后,一个简单的点解决了问题。 - Simon
3个回答

27

它可以工作,但有些棘手。您需要将 LocalDB 命名管道用作 Heidi 主机名。例如,使用 LocalDB V12:

sqllocaldb info
sqllocaldb start MSSQLLocalDB
sqllocaldb info MSSQLLocalDB

"info"参数揭示:

\\.\pipe\LOCALDB#12345678\tsql\query

请注意,该数字是一个随机哈希值,这会使事情更加复杂,因为您需要不断检查它。可以使用Heidi的命令行选项进行批处理/脚本化上述操作。

我的命令行:

heidisql -d=LocalDB -h=%pipename% -n=3 -d=LocalDB

-d参数故意使用了两次。


我花了好几个小时苦苦挣扎,最后才意识到我需要从实例管道名称中移除np:。对我来说,sqllocaldb info MSSQLLocalDB返回的是np:\\.\pipe\LOCALDB#DCEF86CA\tsql\query。在 HeidiSql 中,我必须使用\\.\pipe\LOCALDB#DCEF86CA\tsql\query,然后它就成功了! - ManiVI

12

针对普通 SQL Server 实例而非 LocalDB 实例:

我知道这个问题是关于本地数据库(LocalDB)的,但是当我在浏览时找到了这个结果,这个答案可能会帮助到我。

在 Windows 搜索栏(按 Enter 键并输入搜索内容)里输入“SQL Server 配置管理器”进行搜索。打开它,但要确保你没有打开“SQL Server 主数据服务配置管理器”,因为那不是正确的选项。对我而言,第一次查找时需要在“应用程序”下面看到这个选项。

然后点击“SQL Server 网络配置”。

如果没有出现该选项,你可以手动打开该文件。请参见:https://learn.microsoft.com/zh-cn/sql/relational-databases/sql-server-configuration-manager

对于我来说,它位于“C:\Windows\SysWOW64\SQLServerManager13.msc”。

双击“[你的实例名称] 的协议”。

若要连接其他数据库客户端,请选择启用命名管道或 TCP/IP。

TCP/IP

右键单击“TCP/IP”,然后单击“属性”。

将“启用”更改为“True”。

将 IP4(或其 IP 地址为 127.0.0.1 的那个)启用。

点击“确定”。

跳到重启部分。

命名管道

右键单击“命名管道”,然后单击“属性”。

将“启用”更改为“True”。

复制“管道名称”,稍后在数据库客户端中使用它。

跳到重启部分。

重启

正如你所警告的,你需要重启服务。请点击左侧的“SQL Server 服务”

右键单击“SQL Server([您的实例名称])”,然后单击“重新启动”

现在您可以使用数据库客户端浏览您的SQL Server实例。在Heidi中,您只需选择与您设置匹配的网络类型 - 选择“使用Windows身份验证”并填写适当的主机名/IP地址(管道名称或IP地址取决于您选择使用哪种方法)


我尝试搜索了SQL Server Configuration,但找不到了...有什么线索吗?我确信我已经正确安装了SQL Server。https://s23.postimg.org/cd4dq5iyz/sql_server_program.png @csga5000 - gumuruh
1
@gumuruh 请看我即将为您提供的编辑答案。 - csga5000

1

您介意将指示放在这里,而不是指向可能会无声无息地消失的外部来源吗? - SQB
SQB,你说得对,不过该链接指向的是SO上的答案,而非外部来源。 - Ali
啊,我错过了。同样的答案适用于两个问题,这表明这些问题可能是重复的。因此,我们应该关闭其中一个并支持另一个。然而,这一点仍然存在:另一个答案甚至整个问题可能会被删除,使得这成为一个死链接。 - SQB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接