Гид по технологиям

Установка Microsoft SQL Server 2019 и MSSQL Tools на CentOS 8

6 min read Базы данных Обновлено 07 Nov 2025
MSSQL Server 2019 на CentOS 8 — установка и инструменты
MSSQL Server 2019 на 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.

Вывод команды python --version в терминале CentOS 8, показывающий 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.

Список репозиториев dnf repolist с добавленным репозиторием packages.microsoft.com

Примечание: если 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.

Процесс настройки mssql-conf setup с выбором редакции и вводом пароля администратора SA

Проверьте статус сервиса:

systemctl status mssql-server

Ожидаемый результат — сервис активен и работает.

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 считается завершённой.

Подтверждение добавления порта 1433 в зону public firewalld

Важно: если вы используете 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).

Установка mssql-tools и подтверждение лицензии в процессе dnf install

Добавьте каталог бинарников инструментов в переменную 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 в списке путей.

Вывод 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).

Мини-методология развертывания (быстрый план)

  1. Подготовить сервер: обновить систему, проверить сеть.
  2. Установить python2 и зависимости.
  3. Добавить репозитории Microsoft.
  4. Установить mssql-server и выполнить настройку mssql-conf.
  5. Открыть порт(ы) и настроить бэкапы.
  6. Установить mssql-tools и добавить в PATH.
  7. Выполнить 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. Дополнительно приведены рекомендации по безопасности, альтернативные подходы и чек-листы для ролей.

Ссылки и источники

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти