无法使用 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 开始,您还可以:
- 用
"C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" start "MSSQLLocalDB"
启动数据库
- 从
"C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" info "MSSQLLocalDB"
中读取 "Instance pipe name"(例如,\.\pipe\LOCALDB#1B9DCF1E\tsql\query
- 用
"C:\Program Files\HeidiSQL\heidisql.exe --nettype=3 --host="\.\pipe\LOCALDB#1B9DCF1E\tsql\query" --winauth=1"
启动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
我一直在尝试使用最新版本的 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 开始,您还可以:
- 用
"C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" start "MSSQLLocalDB"
启动数据库
- 从
"C:\Program Files\Microsoft SQL Server0\Tools\Binn\SqlLocalDB.exe" info "MSSQLLocalDB"
中读取 "Instance pipe name"(例如,\.\pipe\LOCALDB#1B9DCF1E\tsql\query
- 用
"C:\Program Files\HeidiSQL\heidisql.exe --nettype=3 --host="\.\pipe\LOCALDB#1B9DCF1E\tsql\query" --winauth=1"
启动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