Вопрос или проблема
Я записался на курс DBMS в колледже, профессор явно использует MySQL.
В лабораториях установлены Ubuntu и Windows с двойной загрузкой, но установка Windows старая и очень медленная.
Я пытался установить плагин vs-code SQLTools вместе с этим руководством для настройки MSSQL Server, используя это руководство.
Я могу подключиться к серверу, используя эту команду через терминал:
sqlcmd -S localhost -U SA
Проблема возникает: когда я пытаюсь подключиться, используя localhost
, username:SA
и порт 1433, через плагин SQLTools или официальный плагин MSSQL для vscode, соединение никогда не удается.
Было бы замечательно, если бы я смог настроить что-то подобное на своем ПК с Windows 10 и Elementary OS. Поскольку я мог бы практически воссоздать всю свою базу данных, так как весь мой синтаксис будет находиться в одном SQL-файле, который я собираюсь сдать для выполнения заданий.
Это действительная настройка подключения, которую я только что протестировал на своем настольном компьютере:
По описанию вашего вопроса вы указали только Сервер, Порт и Имя пользователя. Убедитесь, что у вас есть вся другая информация.
Обратите внимание, что в моей конфигурации сервера мне пришлось добавить еще одну информацию (\sqldeveloper), так как у меня нет экземпляра SQL Server по умолчанию, но вам должно быть достаточно просто localhost, так как это сработало для вас при использовании SQLCMD.
Однажды я пытался подключиться, и соединение просто продолжало загружаться без успеха, но я перезапустил SQLTools, и все сработало хорошо.
Когда вы используете средства командной строки Microsoft (например, SQLCMD), они будут общаться с Microsoft Sqlserver, используя общую память, а не обязательно TCP/IP или именованные каналы.
Поэтому вам нужно убедиться, что SqlServer, к которому вы хотите обратиться, “слушает” на порте TCP/IP, который вы настроили. Это связано с тем, что клиент SQLTools будет общаться с ним через сеть, используя драйвер SQL Native Client по TCP/IP, когда вы указываете номер порта в строке подключения.
Чтобы проверить, что было настроено, вы можете запустить Диспетчер конфигурации SqlServer (например, SQLServerManager15.msc для версии 2019, ???16 для 2022) и проверить, что TCP/IP включен и “слушает” на localhost (127.0.0.1), как показано ниже.
В зависимости от вашего доступа к серверу, вы также можете выполнить этот запрос, чтобы увидеть, какие порты активны по TCP/IP (IP4):
SELECT * FROM sys.dm_tcp_listener_states WHERE is_ipv4 = 1 AND [type] = 0
Ответ или решение
Настройка локального сервера MSSQL для использования плагина SQLTools в Visual Studio Code под Linux
Ваша задача заключается в настройке локального сервера Microsoft SQL Server и подключении к нему через плагин SQLTools в Visual Studio Code на Linux. Ваша проблема с подключением вызывает несколько вопросов, и в этом ответе мы рассмотрим возможные шаги для решения данной проблемы.
Шаг 1: Проверка конфигурации MSSQL Server
При работе с SQL Server важно убедиться, что он настроен должным образом для приема соединений. Ваша успешная проверка соединения через sqlcmd
указывает на то, что сервер работает, но необходимо удостовериться, что он также настроен для TCP/IP соединений.
-
Проверьте, что TCP/IP включен:
- Для этого можно использовать административный инструмент
SQL Server Configuration Manager
. В данном случае это может потребовать установки на машине под управлением Windows. Для Linux убедитесь, что конфигурация собрана правильно. - Воспользуйтесь командой:
sudo /opt/mssql/bin/sqlservr-setup
- Убедитесь, что в секции "SQL Server Network Configuration" включен TCP/IP.
- Для этого можно использовать административный инструмент
-
Проверьте, что SQL Server слушает на порту 1433:
Выполните следующий SQL-запрос, чтобы удостовериться, что сервер слушает на нужном порту:SELECT * FROM sys.dm_tcp_listener_states WHERE is_ipv4 = 1 AND [type] = 0
Это даст вам информацию о том, какой порт активен.
Шаг 2: Конфигурация SQLTools в Visual Studio Code
Теперь, когда вы удостоверились, что MSSQL Server работает и настроен для подключения, проверьте настройки SQLTools в Visual Studio Code:
-
Откройте настройки SQLTools:
- В Visual Studio Code перейдите в раздел настроек и найдите SQLTools.
- Создайте новое подключение, указав следующие параметры:
- Server:
localhost
- Port:
1433
- Username:
SA
- Password: (пароль, который вы указали при установке SQL Server)
- Server:
-
Подключение к серверу:
Убедитесь, что вы используете правильный формат подключения. Если по-прежнему возникают проблемы, попробуйте добавить в поле Server IP-адрес127.0.0.1
вместоlocalhost
.
Шаг 3: Тестирование соединения
После внесения вышеуказанных изменений, попробуйте выполнить соединение снова:
- Перезапустите Visual Studio Code.
- Попробуйте подключиться к серверу — обратите внимание на любые сообщения об ошибках, которые могут подсказать, в чем проблема.
Шаг 4: Устранение неполадок
Если подключение не удается, рассмотрите следующее:
- Файрвол: Убедитесь, что файрвол вашего Linux-дистрибутива или любой активный сетевой фильтр не блокирует порт 1433.
- Логи: Проверьте логи SQL Server на наличие ошибок. Находятся они по пути
/var/opt/mssql/log/errorlog
. - Проверка зависимости: Убедитесь, что для работы SQLTools у вас установлены все необходимые зависимости и дополнения.
Заключение
Следуя вышеуказанным шагам, вы сможете настроить локальный MSSQL сервер и подключиться к нему через плагин SQLTools в Visual Studio Code на Linux. Это поможет вам эффективно работать над вашими заданиями в рамках курса DBMS. Удачи вам в учебе и настройке!