Соединение HeidiSql с MS SQL Server LocalDB
Я тщетно пытался подключиться к моей базе данных SQL Server, прикрепленной к экземпляру LocalDB (localdb)\v11.0
, используя HeidiSql и проверку подлинности Windows.
Мое тестирование показало, что HeidiSql может подключаться к постоянно установленным экземплярам MSSQLSERVER
и SQLEXPRESS
следующим образом:
MSSQLSERVER
:
- SQL Server: (named pipe)
- Имя хоста /IP:.
- Использовать проверку подлинности Windows
SQLEXPRESS
:
- SQL Server: (named pipe)
- Имя хоста /IP.\SQLEXPRESS
- Использовать проверку подлинности Windows
Соединение LocalDB оказывается неуловимым.
Мое чтение ситуации предполагает, что экземпляр LocalDB является чем-то вроде phantom, созданным Visual Studio и SQL Server Management Studio по мере необходимости. Они не сохраняются или не существуют, когда эти программы не работают. Когда они запущены, доступ к ним скрыт в этих программах и недоступен для других приложений.
Я знаю, что могу переключиться на MSSQLSERVER
или SQLEXPRESS
в качестве стандартного сервера базы данных для своих приложений Visual Studio, но мне интересно узнать, существует ли путь для подключения к HeidiSql экземпляру LocalDB.
Ответы
Ответ 1
Он может работать, но сложно. Вы должны использовать LocalDB named pipe как имя хоста Heidi. Использование LocalDB V12, например:
sqllocaldb info
sqllocaldb start MSSQLLocalDB
sqllocaldb info MSSQLLocalDB
Параметр "info" показывает:
\\.\pipe\LOCALDB#12345678\tsql\query
Обратите внимание, что число представляет собой случайный хеш, что усложняет ситуацию, так как вам нужно постоянно его проверять. Это возможно для пакета / script выше, с параметрами командной строки Heidi .
Моя командная строка:
heidisql -d=LocalDB -h=%pipename% -n=3 -d=LocalDB
Параметр -d используется дважды намеренно.
Ответ 2
Для обычных экземпляров SQL Server, а не для экземпляров LocalDB:
Я понимаю, что этот вопрос задает вопрос о локальном db; однако этот результат возник, когда я оглядывался, и этот ответ помог мне.
В окне поиска Windows (нажмите ввод и введите для поиска) введите "менеджер конфигурации SQL Server". Откройте это, но убедитесь, что вы не открываете "менеджер конфигурации серверов основных данных SQL Server", что неверно. Для меня, в первый раз, когда мне приходилось выглядеть, это было мало в результатах в "приложениях".
Затем нажмите "Конфигурация сети SQL Server".
Если это не получается, вы можете вручную открыть файл. См.: https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager
Для меня это на "C:\Windows\SysWOW64\SQLServerManager13.msc"
Дважды щелкните "Протоколы для [вашего экземпляра здесь]"
Чтобы получить доступ к подключению, используя что-то помимо SSMS, вам нужно будет выбрать именованный канал или TCP/IP.
TCP/IP
Щелкните правой кнопкой мыши "TCP/IP" и выберите свойства
Измените "Включено" на true
Измените IP4 (или тот, у кого есть 127.0.0.1 как IP-адрес).
Нажмите "Ok".
Перейти к перезапуску
Именованная труба
Щелкните правой кнопкой мыши "Именованные каналы" и выберите "Свойства"
Измените "Включено" на true
Скопируйте "Имя трубы" и используйте это позже в клиенте базы данных
Перейти к перезапуску
Перезапуск
Как вы предупреждаете, вам нужно перезапустить службу, поэтому нажмите "Службы SQL Server" слева.
Щелкните правой кнопкой мыши "SQL Server ([ваше имя экземпляра]" и нажмите "Перезапустить"
Теперь вы можете использовать клиента базы данных для просмотра экземпляра SQL-сервера. В heidi вы просто выбираете тип сети, который соответствует вашей настройке - выберите "Использовать проверку подлинности Windows" и заполните имя/IP-адрес appripriate (имя канала или ip в зависимости от того, какой метод вы выбрали)
Ответ 3
FYI, я ответил на этот вопрос в другом вопросе SO, а также с пошаговыми инструкциями. Особая благодарность @GravityWell за предложение имени канала!