При работе с несколькими экземплярами SQL вы можете столкнуться с ошибкой, которая не позволяет вам запустить определенный экземпляр SQL на вашем ноутбуке. Сообщение об ошибке, которое вы получаете при попытке запустить экземпляр из меню Пуск > Выполнить > Services.msc, связано с TCP-провайдером. В нем говорится, что Windows не может запустить SQL Server (MSSQLSERVER) на локальном компьютере и рекомендуется просмотреть журнал событий системы для получения дополнительной информации. Предоставленный код ошибки – 10048.
При открытии файла ERRORLOG вы можете найти следующее сообщение:
2016-12-07 05:39:05.52 spid11s Сервер слушает на ['любой' 51823]. 2016-12-07 05:39:05.52 spid11s Ошибка: 26023, Серьезность: 16, Состояние: 1. 2016-12-07 05:39:05.52 spid11s Сервер TCP-провайдера не удалось прослушать на ['любой' 51823]. Порт TCP уже используется. 2016-12-07 05:39:05.52 spid11s Ошибка: 17182, Серьезность: 16, Состояние: 1. 2016-12-07 05:39:05.52 spid11s Инициализация TDSSNIClient завершилась с ошибкой 0x2740, код состояния 0xa. Причина: Невозможно инициализировать TCP/IP слушатель. Обычно разрешается использование только одного экземпляра каждого адреса сокета (протокол/сетевой адрес/порт). 2016-12-07 05:39:05.52 spid11s Ошибка: 17120, Серьезность: 16, Состояние: 1. 2016-12-07 05:39:05.52 spid11s SQL Server не смог запустить поток FRunCommunicationsManager. Проверьте журнал ошибок SQL Server и журналы событий Windows для получения информации о возможных связанных проблемах.
Журналы приложений также могут отображать похожее сообщение:
Имя журнала: Application Источник: MSSQLSERVER Дата: 7.12.2016 5:38:18 Идентификатор события: 26023 Категория задачи: Сервер Уровень: Ошибка Ключевые слова: Классический Пользователь: Н/Д Компьютер: sqlserver2016 Описание: Сервер TCP-провайдера не удалось прослушать на ['любой' 51823]. Порт TCP уже используется.
Чтобы решить эту проблему, у вас есть два варианта:
- Определите процесс, использующий порт 51823, и остановите его.
- Измените порт, на котором слушает ваш экземпляр SQL Server.
Чтобы определить процесс, использующий порт 51823, вы можете использовать бесплатную утилиту под названием TCPView. Эта утилита, разработанная Sysinternals, предоставляет необходимую информацию для устранения проблемы. Просто запустите TCPView, приостановите просмотр данных и найдите процесс, использующий локальный порт с протоколом TCP. В предоставленном примере PID 3724 использует “Локальный порт” 51823, что соответствует сообщению об ошибке.
После того, как вы определили процесс, использующий порт, вы можете принять соответствующие меры. Если у вас нет разрешения на остановку процесса, вы всегда можете изменить порт, на котором слушает ваш экземпляр SQL Server. Однако рекомендуется выяснить, какой процесс уже использует порт.
Чтобы настроить сервер на прослушивание определенного TCP-порта, вы можете использовать SQL Server Configuration Manager.
Вы сталкивались с подобной проблемой? Как вы ее решили? Пожалуйста, поделитесь своим опытом в комментариях ниже.