Установка Microsoft SQL Server 2019 и MSSQL Tools на CentOS 8
Системные требования
- CentOS 8
- 4 ГБ или более оперативной памяти
- Права root или эквивалент sudo
Важно: убедитесь, что у вас стабильное подключение к интернету и место на диске для rpm-пакетов.
Что мы сделаем
- Установим Python 2
- Добавим официальный репозиторий MSSQL
- Установим MSSQL Server
- Установим и настроим MSSQL Tools (sqlcmd)
- Проверим работу сервера и выполним базовую операцию
Шаг 1 — Установка Python2
MSSQL Server требует python2 для некоторых зависимостей. В CentOS 8 репозитории AppStream содержат несколько версий Python; установите python2 командой:
dnf install python2После установки сделайте python2 версией по умолчанию (если требуется):
sudo alternatives --config pythonПроверьте текущую версию:
python --versionВы увидите, что по умолчанию в системе теперь используется python2.

Важно: некоторые системы и скрипты ожидают python3. Установка python2 не должна менять системные ссылки критичных сервисов — проверяйте рабочие процессы и CI.
Шаг 2 — Добавление репозитория MSSQL
Добавим официальный репозиторий Microsoft в /etc/yum.repos.d/. В этом примере используется репозиторий, настроенный под RHEL 7 (Microsoft предоставляет такие конфигурации для совместимости):
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repoПроверьте список доступных репозиториев:
sudo dnf repolistВ выводе вы увидите добавленный репозиторий MSSQL.

Примечание: если Microsoft изменит структуру репозиториев, используйте актуальную инструкцию на официальном сайте Microsoft.
Шаг 3 — Установка MSSQL Server
Загрузите rpm-пакет mssql-server:
dnf download mssql-serverУстановите пакет:
sudo rpm -Uvh --nodeps mssql-server*rpmПосле установки выполните начальную настройку конфигурации:
sudo /opt/mssql/bin/mssql-conf setupВо время настройки выберите версию Developer (в примере — опция 2), согласитесь с лицензионным соглашением, затем задайте надёжный пароль для пользователя SA.

Проверьте статус сервиса:
systemctl status mssql-serverОжидаемый результат — сервис активен и работает.

Откройте порт MSSQL (1433) в firewalld и перезагрузите правила:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reloadПосле этого установка MSSQL Server на CentOS 8 считается завершённой.

Важно: если вы используете external firewall или cloud security group (например, в AWS/GCP), необходимо также открыть порт там.
Шаг 4 — Установка и настройка MSSQL Tools
Клиентские инструменты (sqlcmd и bcp) устанавливаются из отдельного репозитория. Добавьте его так:
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repoУстановите инструменты и unixODBC-devel:
sudo dnf install -y mssql-tools unixODBC-develВо время установки подтвердите лицензионное соглашение (Yes).

Добавьте каталог бинарников инструментов в переменную PATH для текущего пользователя:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrcПроверьте, что путь добавлен:
echo $PATHВы увидите /opt/mssql-tools/bin в списке путей.

Шаг 5 — Тестирование
Подключитесь к локальному серверу с помощью sqlcmd под пользователем SA:
sqlcmd -S localhost -U SA
Password:Введите пароль, который вы задали при mssql-conf setup. После подключения создайте тестовую базу данных:
create database hakaseDBПроверьте список баз данных:
select name from sys.databases
goВы должны увидеть базу hakaseDB в выводе. Это подтверждает, что сервер функционирует.
Критерии приёмки
- Служба mssql-server активна (systemctl status active).
- Порт 1433 открыт в firewalld и/или внешних группах безопасности.
- sqlcmd подключается под SA и выполняет простые запросы.
- Права на файлы конфигурации и журналов корректны (root/мssql).
Проверочные тесты и приемочные сценарии
- Подключение: sqlcmd -S localhost -U SA успешно открывает сессию.
- Создание БД: create database test_db; select name from sys.databases — test_db присутствует.
- Перезапуск службы: systemctl restart mssql-server — служба снова активна.
- Логирование: в /var/opt/mssql/log записаны сообщения старта.
Чек-листы по ролям
DBA:
- Проверить резервное копирование и план восстановления.
- Настроить аудит и мониторинг.
DevOps:
- Автоматизировать установку через Ansible/Chef/Puppet.
- Добавить проверку статуса службы в мониторинг (Prometheus/Nagios).
Разработчик:
- Убедиться, что приложение использует правильные строки подключения.
- Проверить совместимость SQL диалекта и функций.
Альтернативные подходы
- Контейнерный запуск: использовать официальный образ mcr.microsoft.com/mssql/server в Docker, удобно для разработки и CI.
- Использовать RDS/Managed SQL в облаке (AWS RDS, Azure SQL) для отказоустойчивости и простоты управления.
- Для CentOS Stream / новых релизов — проверить поддерживаемые репозитории Microsoft или собрать из совместимых пакетов.
Когда этот способ не подойдёт
- Если требуется высокая доступность из коробки — необходимо настроить кластеризацию, Always On availability groups или использовать managed-сервис.
- На средах с жесткими политиками безопасности не рекомендуется оставлять SA с паролем; используйте Managed Identity или ограничьте доступ по сети.
Руководство по безопасности
- Измените порт по умолчанию (1433) и ограничьте доступ по IP-адресам, если это возможно.
- Отключите логин SA или переименуйте/ограничьте его использование; создайте отдельные учетные записи с минимальными правами.
- Настройте резервное копирование и хранение бэкапов в защищённом месте.
- Рассмотрите шифрование данных на диске и TLS для сетевых подключений.
Традиционные проблемы и их решения
- «Репозиторий не найден» — проверьте URL репозитория и доступ к packages.microsoft.com.
- «Ошибка зависимости» при rpm — попробуйте установить через dnf install mssql-server если доступен в репо, либо проверьте версии библиотек.
- «sqlcmd: команда не найдена» — убедитесь, что /opt/mssql-tools/bin добавлен в PATH и вы перезапустили оболочку.
Совместимость и миграция
- Используемый в инструкции репозиторий настроен под RHEL 7; Microsoft часто предоставляет совместимые пакеты для RHEL 7, которые работают на CentOS 8, но проверяйте официальную документацию на предмет официальной поддержки вашей версии ОС.
- При миграции с других СУБД используйте инструменты миграции данных (bcp, SSIS, или сторонние ETL).
Мини-методология развертывания (быстрый план)
- Подготовить сервер: обновить систему, проверить сеть.
- Установить python2 и зависимости.
- Добавить репозитории Microsoft.
- Установить mssql-server и выполнить настройку mssql-conf.
- Открыть порт(ы) и настроить бэкапы.
- Установить mssql-tools и добавить в PATH.
- Выполнить smoke-тесты и мониторинг.
Короткий глоссарий
- SA — системный администратор базы данных Microsoft SQL Server (суперпользователь).
- sqlcmd — консольный клиент для выполнения T-SQL команд.
- mssql-conf — утилита конфигурации MSSQL Server в Linux.
Часто задаваемые вопросы
Поддерживается ли CentOS 8 официально Microsoft?
Поддержка зависит от версии пакетов и репозиториев Microsoft. В инструкции используется конфигурация репозитория, ориентированная на RHEL 7; перед развёртыванием в продуктиве проверьте актуальную документацию Microsoft.
Как открыть порт 1433, если не используется firewalld?
Откройте порт в настройках вашей облачной платформы (Security Group, Network ACL) или в используемом firewall (ufw, iptables) согласно политике безопасности.
Итог
Установка Microsoft SQL Server 2019 на CentOS 8 включает добавление репозитория Microsoft, установку пакета mssql-server и клиентских инструментов mssql-tools, настройку mssql-conf и открытие порта 1433. После этого сервер доступен для запросов через sqlcmd. Дополнительно приведены рекомендации по безопасности, альтернативные подходы и чек-листы для ролей.
Ссылки и источники
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить