2016-06-16 3 views
1

Я пытаюсь подключиться к экземпляру localdb с последней версией (на данный момент) heidisql безрезультатно.Не удалось подключиться к LocalDB с помощью HeidiSQL

Я следовал инструкциям из этого ответа здесь, но это не похоже на работу (больше):

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

Любые идеи?

EDIT

Error message

+0

LocalDB является база данных в процессе. Если процесс не запускается, никто не может подключиться к нему. Вы начали его, прежде чем пытаться подключиться? –

+0

И вы пытались подключиться с помощью диспетчера сеансов HeidiSQL вместо использования ограниченного синтаксиса командной строки? – Anse

+0

@Panagiotis Да, у меня была служба localdb, работающая каждый раз, когда я пытался подключиться. Anse: Я попытался подключиться с помощью диспетчера сеансов HeidiSQL (используется опция «Использовать проверку подлинности Windows»), но тот же результат. –

ответ

5

Для следующей строки соединения в моей 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 Server\120\ с правильным путем & использовать правильное имя выбранного в строке подключения после Data Source=(LocalDb)\ (noncase-чувствительный, development в моем случае) ] попробовать:

"C:\Program Files\Microsoft SQL Server\120\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 

Копия \\.\pipe\LOCALDB#CDE5547F\tsql\query от «Название трубы экземпляра», БЕЗ начальный np:. Кроме того, название вашей трубки, вероятно, будет отличаться от моего.

Затем вы можете создать новую сессию в HeidiSQL так:

enter image description here

N.B .: "Тип сети", "Hostname/IP" и "Использовать Windows аутентификации" имеют важное значение; в то время как другие настройки (например, «Базы данных») зависят от вас, поэтому вы можете оставить их пустыми/пропустить и т. д.

Кредиты идут до https://stackoverflow.com/a/33748584/11895 для предложения названия трубы.

+0

Работает как шарм, спасибо большое! –

0

По heidisql.exe Revision 9.3.0.5108 Вы можете также:

  1. Запуск базы данных с "C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" start "MSSQLLocalDB"
  2. Прочитайте "Имя экземпляра трубы" из "C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" info "MSSQLLocalDB" (например,, \\.\pipe\LOCALDB#1B9DCF1E\tsql\query
  3. Начало HeidiSQL с "C:\Program Files\HeidiSQL\heidisql.exe --nettype=3 --host="\\.\pipe\LOCALDB#1B9DCF1E\tsql\query" --winauth=1"

Я использую скрипт 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