Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server в Linux
Подсистема Windows для Linux (WSL) — это функция в Windows, которая позволяет запускать среду Linux непосредственно на компьютере Windows без необходимости загрузки виртуальной машины или двойной загрузки. WSL обеспечивает простой и продуктивный интерфейс для разработчиков, которые хотят одновременно использовать Windows и Linux. Дополнительные сведения см. в статье Что такое подсистема Windows для Linux?
SQL Server в WSL предназначен только для разработки
SQL Server в WSL 2 предназначен исключительно для разработки и не поддерживается для продукционных рабочих нагрузок. Мы рекомендуем запустить SQL Server в средах WSL на одной из поддерживаемых платформ , как описано, для версии SQL Server, которую вы планируете запустить.
Для любых проблем, связанных с поддержкой, вы можете получить поддержку от Корпорации Майкрософт.
Начало работы с SQL Server в WSL 2
Существует два способа начать работу с SQL Server в WSL 2:
Установите SQL Server как службу
systemd, которую можно управлять с помощью командsystemctl. Убедитесь, что вы включитеsystemdв WSL. Дополнительные сведения см. в разделе Как включить systemd.Развертывание контейнеров SQL Server в WSL. Для этого варианта необходимо сначала установить в WSL среду контейнеров Linux, например Docker или Podman, а затем развернуть контейнеры SQL Server.
Необходимые условия
Установите WSL 2. Убедитесь, что вы работаете под управлением Windows 10 версии 2004 или более поздней версии (сборка 19041 и выше) или Windows 11. Чтобы установить WSL, откройте командную строку PowerShell или Windows в режиме администратора и следуйте инструкциям в следующем разделе.
Подробные инструкции см. в статье Установка Linux в Windows с помощью WSL. Сведения о настройке среды WSL для разработки см. в настройке среды разработки WSL.
Установка SQL Server в WSL
В этом разделе описаны шаги по настройке дистрибутива Linux в WSL и установке SQL Server в этом дистрибутиве Linux.
Выбор дистрибутива Linux
Вы можете перечислить все допустимые дистрибутивы, которые можно установить в WSL, с помощью следующей команды:
wsl -l -o
Выходные данные выглядят примерно так, как показано в следующем примере.
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
В этом кратком руководстве по установке установите Ubuntu 22.04, а затем SQL Server 2022 в эту операционную систему.
Чтобы установить Ubuntu 22.04, выполните следующую команду. Запишите учетную запись пользователя UNIX и пароль. В этом примере используйте wsluser в качестве имени пользователя.
wsl --install -d Ubuntu-22.04
Вы должны увидеть выходные данные, аналогичные следующему примеру. В конце должно быть показано, что вы вошли в оболочку bash Ubuntu 22.04.
Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Tue Dec 3 00:32:14 IST 2024
System load: 0.33 Processes: 32
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 2% IPv4 address for eth0: 10.18.123.249
Swap usage: 0%
This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.
Установка SQL Server
После входа в оболочку Ubuntu 22.04 bash, выполните действия, описанные в кратком руководстве : Установка SQL Server и создание базы данных в Ubuntu, чтобы установить SQL Server 2022.
Также следует установить средства командной строки SQL Server.
Получение IP-адреса
Чтобы определить IP-адрес для подключения к sql Server Management Studio (SSMS), выполните команду ifconfig следующим образом:
ifconfig
Вы должны увидеть выходные данные, аналогичные следующему примеру.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.19.50.241 netmask 255.255.240.0 broadcast 10.19.63.255
inet6 fe80::215:5dff:fe76:c05d prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:76:c0:5d txqueuelen 1000 (Ethernet)
RX packets 2146 bytes 1452448 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1905 bytes 345288 (345.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2039 bytes 4144340 (4.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2039 bytes 4144340 (4.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Развертывание контейнеров SQL Server в WSL
Чтобы развернуть контейнеры в WSL, сначала необходимо установить подсистему контейнеров Linux, например Docker. Дополнительные сведения см. в статье Начало работы с удаленными контейнерами Docker в WSL. После установки подсистемы Docker разверните образ контейнера SQL Server следующим образом.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest
При развертывании контейнера для SQL Server 2025 (17.x) или более поздней версии используется MSSQL_PID=DeveloperStandard для выпуска Standard Developer и MSSQL_PID=Developer для выпуска Enterprise Developer.
Заметка
Пароль должен соответствовать стандартной политике паролей SQL Server . По умолчанию пароль должен содержать по крайней мере восемь символов и содержать символы из трех из следующих четырех наборов: прописные буквы, строчные буквы, цифры base-10 и символы. Пароли могут содержать до 128 символов. Используйте пароли, которые являются максимально длинными и сложными.
Добавление постоянного хранилища с помощью WSL для контейнеров SQL Server
Тома данных можно создать, как описано в подключить каталог узла в качестве тома данных.
Например, выполните следующую команду, чтобы настроить том с именем sql_volume, расположенный в /var/opt/mssql/.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest
При развертывании контейнера для SQL Server 2025 (17.x) или более поздней версии используется MSSQL_PID=DeveloperStandard для выпуска Standard Developer и MSSQL_PID=Developer для выпуска Enterprise Developer.
Даже если вы запускаете команду wsl --terminate, данные не теряются. При повторном запуске WSL и выполнении команды docker run для развертывания с помощью тома sql_volume он по-прежнему сохраняет все данные без изменений.
Если вы хотите удалить сохраненный том, убедитесь, что контейнер, использующий этот том, остановлен и удален, а затем выполните следующую команду.
docker volume rm sql_volume
Замечания
Вы должны иметь возможность настроить большинство функций, поддерживаемых SQL Server в Linux для целей разработки, за исключением функций непрерывности бизнес-процессов, которые зависят от стеков кластеризации. Эти функции, такие как Pacemaker или HPE Serviceguard, не поддерживаются в WSL.
Полный список неподдерживаемых функций SQL Server в Linux см. в разделе Редакции и поддерживаемые функции SQL Server 2022 в Linux.
Подключитесь локально
Следующие шаги используют sqlcmd для локального подключения к новому экземпляру SQL Server.
Осторожность
Пароль должен соответствовать стандартной политике паролей SQL Server . По умолчанию пароль должен содержать по крайней мере восемь символов и содержать символы из трех из следующих четырех наборов: прописные буквы, строчные буквы, цифры base-10 и символы. Пароли могут содержать до 128 символов. Используйте пароли, которые являются максимально длинными и сложными.
Запустите sqlcmd с параметрами для имени SQL Server (
-S), имени пользователя (-U) и пароля (-P). В этом руководстве вы связываетесь с сервером по локальной сети, поэтому имя сервераlocalhost. Имя пользователяsa, а пароль — это пароль, который вы указали для учетной записиsaво время установки.sqlcmd -S localhost -U sa -P '<password>'Заметка
Более новые версии sqlcmd по умолчанию защищены. Дополнительные сведения о шифровании подключений см. в служебной программе sqlcmd для Windows и Подключении с помощью sqlcmd для Linux и macOS. Если подключение не выполнено, можно добавить параметр
-Noдля sqlcmd, чтобы указать, что шифрование является необязательным, а не обязательным.Пароль можно пропустить в командной строке, чтобы появилось приглашение его ввести.
Если позже вы решили удаленно подключиться, укажите имя компьютера или IP-адрес для параметра
-Sи убедитесь, что порт 1433 открыт в брандмауэре.В случае успешного выполнения у вас должна открыться командная строка sqlcmd:
1>.При возникновении сбоя подключения сначала попытайтесь диагностировать проблему из сообщения об ошибке. Затем просмотрите рекомендации по устранению неполадок подключения .
Создание и запрос данных
В следующих разделах описано, как использовать sqlcmd для создания новой базы данных, добавления данных и выполнения простого запроса.
Дополнительные сведения о написании инструкций и запросов Transact-SQL см. в руководстве по написанию Transact-SQL инструкций.
Создание базы данных
Следующие шаги по созданию новой базы данных с именем TestDB.
В командной строке sqlcmd вставьте следующую команду Transact-SQL, чтобы создать тестовую базу данных:
CREATE DATABASE TestDB;В следующей строке напишите запрос, чтобы вернуть имя всех баз данных на сервере:
SELECT Name FROM sys.databases;Предыдущие две команды не выполняются немедленно. Чтобы выполнить предыдущие команды, необходимо ввести
GOв новой строке:GO
Вставка данных
Затем создайте новую таблицу, dbo.Inventoryи вставьте две новые строки.
В командной строке sqlcmd переключите контекст на новую базу данных
TestDB:USE TestDB;Создайте новую таблицу с именем
dbo.Inventory:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );Вставьте данные в новую таблицу:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);Введите
GOдля выполнения предыдущих команд:GO
Выбор данных
Теперь запустите запрос, чтобы вернуть данные из таблицы dbo.Inventory.
В командной строке sqlcmd введите запрос, возвращающий строки из таблицы
dbo.Inventory, где количество больше 152:SELECT * FROM dbo.Inventory WHERE quantity > 152;Выполните команду:
GO
Выход из командной строки sqlcmd
Чтобы завершить сеанс sqlcmd, введите QUIT:
QUIT
Рекомендации по производительности
После установки SQL Server в Linux ознакомьтесь с рекомендациями по настройке Linux и SQL Server для повышения производительности рабочих сценариев. Дополнительные сведения см. в статье Рекомендации по производительности и рекомендации по настройке SQL Server в Linux.
Кроссплатформенные средства обработки данных
Помимо sqlcmd, можно использовать следующие кроссплатформенные средства для управления SQL Server:
| Инструмент | Описание |
|---|---|
| Visual Studio Code | Кроссплатформенный редактор кода ГРАФИЧЕСКОго интерфейса, который выполняет инструкции Transact-SQL с расширением MSSQL. |
| PowerShell | Инструмент для кроссплатформенной автоматизации и конфигурирования, основанный на командлетах. |
| mssql-cli | Кроссплатформенный интерфейс командной строки для выполнения команд Transact-SQL. |
Подключение из Windows
Средства SQL Server в Windows подключаются к экземплярам SQL Server в Linux так же, как они подключаются к любому удаленному экземпляру SQL Server.
Если у вас есть компьютер с Windows, который может подключиться к компьютеру Linux, выполните те же действия, описанные в этой статье из командной строки Windows под управлением sqlcmd. Необходимо использовать целевое имя компьютера Linux или IP-адрес, а не localhost, и убедитесь, что tcp-порт 1433 открыт на компьютере SQL Server. Если у вас возникли проблемы с подключением из Windows, ознакомьтесь с рекомендациями по устранению неполадок подключения .
Другие средства, которые работают в Windows, но подключаются к SQL Server в Linux, см. в статье:
- SQL Server Management Studio (SSMS)
- Windows PowerShell
- Инструменты работы с данными SQL Server (SSDT)
Другие сценарии развертывания
Дополнительные сведения о других сценариях установки см. в следующих ресурсах:
- обновление: Узнайте, как обновить имеющуюся установку SQL Server на Linux.
- удаление: удаление SQL Server в Linux
- автоматическая установка: научитесь скриптовать установку без запроса параметров
- автономная установка: Узнайте, как вручную скачать пакеты для автономной установки
Ответы на часто задаваемые вопросы см. в SQL Server на Linux FAQ.
Связанное содержимое
Вносите вклад в документацию по SQL
Знаете ли вы, что вы можете самостоятельно редактировать содержимое SQL? При этом вы не только помогаете улучшить нашу документацию, но и получаете признание в качестве участника страницы.
Дополнительные сведения см. в разделе Редактирование документации Microsoft Learn.