无法使用 HeidiSQL 连接到 LocalDB

Unable to connect to LocalDB with HeidiSQL

我一直在尝试使用最新版本的 heidisql 连接到 localdb 实例,但无济于事。

我已按照此答案中的说明进行操作,但它似乎(不再)起作用了:

HeidiSql connection to MS SQL Server LocalDB

我尝试了以下方法:

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

2) heidisql -d=LocalDB -h= np:\.\pipe\LOCALDB#41CF9FCB\tsql\query -n=3 -d=LocalDB (我意识到每次启动时数字都会改变新的 localdb 实例)

3) heidisql -d=LocalDB -h=41CF9FCB -n=3 -d=LocalDB

有什么想法吗?

编辑

Error message

对于我的 Web.config;

中的以下连接字符串
<add name="WEDOBADGEDatabase" connectionString="Data Source=(LocalDb)\development;Initial Catalog=WEDOBADGE;AttachDBFilename=|DataDirectory|\DevelopmentDatabase.mdf;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

其中最重要的信息是 Data Source=(LocalDb)\development,[用正确的路径替换(当然)C:\Program Files\Microsoft SQL Server0\ 并在 Data Source=(LocalDb)\ 之后使用在连接字符串中选择的正确名称(不区分大小写,development 在我的例子中)] try:

"C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" info Development

这应该输出类似于:

Name:               Development
Version:            12.0.2000.8
Shared name:
Owner:              hostname\username
Auto-create:        No
State:              Running
Last start time:    8/2/2016 3:20:57 PM
Instance pipe name: np:\.\pipe\LOCALDB#CDE5547F\tsql\query

从 "Instance pipe name" 复制 \.\pipe\LOCALDB#CDE5547F\tsql\query,但不包含 初始 np:。另外,您的管道名称可能与我的不同。

然后你可以像这样在 HeidiSQL 中创建一个新会话:

N.B.:"Network type"、"Hostname / IP"、"Use Windows authentication"很重要;而其他设置(例如 "Databases")由您决定,因此您可以将它们留空/跳过等。

管道名称建议归功于 。

从 heidisql.exe 修订版 9.3.0.5108 开始,您还可以:

  1. "C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" start "MSSQLLocalDB"
  2. 启动数据库
  3. "C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" info "MSSQLLocalDB" 中读取 "Instance pipe name"(例如,\.\pipe\LOCALDB#1B9DCF1E\tsql\query
  4. "C:\Program Files\HeidiSQL\heidisql.exe --nettype=3 --host="\.\pipe\LOCALDB#1B9DCF1E\tsql\query" --winauth=1"
  5. 启动HeidiSQL

我使用一个 Bash 脚本自动执行所有这些操作,大致如下:

shopt -s expand_aliases
alias __sqllocaldb='/c/Program\ Files/Microsoft\ SQL\ Server/120/Tools/Binn/SqlLocalDB.exe'
alias __heidisql='/c/Program\ Files/HeidiSQL/heidisql.exe'
__sqllocaldb start  "Development"
hostname=$(__sqllocaldb info  "Development" | tail -1 | sed 's/\(Instance pipe name: np:\)//')
__heidisql --nettype=3 --host="$hostname" --winauth=1