Ошибка подключения к локальной базе данных в SQL Server Management Studio в Windows 7
Я использую SQL Server 2012 Management Studio Express в Windows 7, у меня проблемы с подключением к локальной базе данных. Я попробовал все вышеупомянутые решения, не сработало. пожалуйста помоги. заранее спасибо.
Установочный URL здесь.
ошибка - произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр) (Microsoft SQL Server, ошибка: -1)
Для получения справки нажмите ссылку MSDN.
7 ответов
Предполагая, что вы установили SQL Server и использовали именованный экземпляр SQLEXPRESS, имя вашего сервера должно быть:
.\SQLEXPRESS
Или же:
127.0.0.1\SQLEXPRESS
Вы можете проверить имя экземпляра (это может быть не SQLEXPRESS) и что сервер работает в меню "Пуск" по пути, очень похожему на этот (но это будет зависеть от версии):
Пуск> Программы> Microsoft SQL Server > Инструменты настройки>
Диспетчер конфигурации SQL Server
Если он в данный момент остановлен, вам нужно щелкнуть правой кнопкой мыши и выбрать Start:
Вы также должны щелкнуть правой кнопкой мыши и убедиться, что режим запуска установлен на автоматический (это в Свойства> Сервис).
Кажется, сообщение об ошибке означает, что сервер пытается использовать именованные каналы. Локально он должен иметь возможность использовать общую память, затем следует убедиться, что служба браузера SQL Server работает. Вы можете сделать это в:
Панель управления> Администрирование> Сервисы
Если он не запущен, запустите его и установите автоматический режим запуска. (Как и выше, вы можете сделать обе эти вещи из контекстного меню.)
Если вы все еще никуда не денетесь, возможно, вы установили SQL Server 2012, не добавляя свою учетную запись Windows вручную в группу администраторов. Если это так, надеюсь, вы установили смешанный режим и можете подключиться как sa. В противном случае вам нужно будет использовать такой инструмент, как PSExec.exe, чтобы запустить SSMS как NT AUTHORITY\SYSTEM:
PsExec -s -i "C:\...path to ssms...\Ssms.exe"
Если вы можете подключиться как sa или вам нужно подключиться с помощью PSExec, следующие шаги:
- убедитесь, что ваша учетная запись Windows является логином в разделе Сервер> Безопасность> Логины. Если его там нет, добавьте его, щелкнув правой кнопкой мыши Logins > New Login.
- убедитесь, что вход в систему является членом предопределенной роли сервера sysadmin. Если это не так, убедитесь, что он находится на вкладке "Роли сервера".
Вы можете подключить SSMS к экземпляру LocalDB, используя именованные каналы.
1 - Получить адрес экземпляра (localdb), выполнив следующую команду: "C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \ SqlLocalDB.exe" info [InstanceName](если вы используете этот экземпляр по умолчанию) Если вы заинтересованы, укажите v11.0 в качестве [InstanceName]. Вы можете записать его в CMD в текстовый файл с помощью команды:
"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" info v11.0 > C:\db_details.txt
2 - Скопируйте значение "имя канала экземпляра", например, np:\.\ Pipe \ LOCALDB # 1E0FF40B \ tsql \ query
3 - Вставьте значение "Имя канала экземпляра" в качестве имени сервера.
Поздно на вечеринку, но проверить эту ссылку у меня была та же проблема
http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx
Также попробуйте (localdb)\V11.0 as the server name.
Обратите внимание, что имя экземпляра V11.0 чувствительно к регистру заглавных V, затем 11.0
После двух дней устранения неполадок, наконец, я получил результат. Если вы используете экспресс-версию SQL Server Management Studio, то для подключения к локальной базе данных используйте это вместо .
Использовать ServerName = (LocalDb)\MSSQLLocalDB
Для получения дополнительной информации перейдите по ссылке ссылки - https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b75bef7e-13f3-4658-8d43-9df12ab4c320/connecting-localdb-using-sql-server-management-studio-express?forum=sqlexpress
Вы проверили, что протокол TCP включен для вашего конкретного сервера. Следуйте этим инструкциям, чтобы увидеть, что он включен.
http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx
После их включения необходимо перезапустить службу. Если он не запускается, проверьте журнал событий по причине, по которой это не удалось. Распространенными причинами является то, что на этом порту уже запущена другая служба (обычно другая версия сервера sql). В этом случае вам может понадобиться перенастроить порты вашего сервера. Проверьте это сообщение в блоге (также содержит изображения о том, как проверить, включен ли протокол TCP/IP):
После этого обычным следующим барьером является брандмауэр или программное обеспечение для интернет-безопасности, блокирующее соединение. Это случилось со мной даже в местных случаях. Разберитесь с этим, и вы должны быть в порядке.
Если после всего этого вы все еще не можете подключиться, найдите в журнале событий причину.
- откройте диспетчер задач и найдите sqlservr.exe на вкладке процесса
- Убедитесь, что столбец Командная строка видна, если нет, затем нажмите Вид> Выбрать столбец> Прокрутить вниз и отметьте Командная строка> Нажмите ОК
- вы увидите "C: \ Program Files \ Microsoft SQL \ 110 \ LocalDB \ Binn \ sqlservr.exe" -c SMSSQL11E.LOCALDB -sLOCALDB#C1E849D0 --etc
- Обратите внимание на LOCALDB#C1E849D0
- Откройте SQL Management studio (администратор runas), затем в поле Имя сервера введите \\.\ Pipe**LOCALDB#C1E849D0**\tsql\query Теперь вы сможете просматривать всю базу данных внутри LOCALDB.
Попробуйте этот код:
RegistryKey rKey;
string InstanceName;
//use this string for database connection
string ConString;
string regPath = @"Software\Microsoft\Microsoft SQL Server\UserInstances";
rKey = Registry.CurrentUser.OpenSubKey(regPath);
if (rKey.GetSubKeyNames().Length != 0)
{
regPath += @"\" + rKey.GetSubKeyNames()[0];
rKey = Registry.CurrentUser.OpenSubKey(regPath);
InstanceName = rKey.GetValue("InstanceName").ToString();
ConString = @"Server=np:\\.\pipe\" + InstanceName +
@"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True";
}
else
{
Process.Start(@"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe", "c amirLOCALDB -s");
regPath += @"\" + rKey.GetSubKeyNames()[0];
rKey = Registry.CurrentUser.OpenSubKey(regPath);
InstanceName = rKey.GetValue("InstanceName").ToString();
ConString = @"Server=np:\\.\pipe\" + InstanceName + @"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True";
}
Если ваш экземпляр остановился, перейдите по этому адресу:
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
и использовать эту команду
SqlLocalDB.exe s yourInstance