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

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

Совет по совместимости: в примере используется файл репозитория для RHEL 7. На CentOS 8 это часто работает, но в долгосрочной перспективе лучше использовать репозиторий и пакеты, официально поддерживающие вашу ОС.
Шаг 3 - Установка MSSQL Server
Скачайте RPM-пакеты MSSQL Server:
dnf download mssql-serverУстановите скачанные RPM-пакеты:
sudo rpm -Uvh --nodeps mssql-server*rpmПосле установки выполните первоначальную настройку с помощью mssql-conf:
sudo /opt/mssql/bin/mssql-conf setupВ процессе вы сможете выбрать выпуск (например, Developer). Примите лицензионное соглашение, введя YES, и задайте надёжный пароль для учётной записи SA.

Проверьте статус сервиса:
systemctl status mssql-serverОжидается, что служба будет активной (active and running).

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

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

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

Примечание: если вы используете другую оболочку (например, zsh), добавьте строку в соответствующий файл конфигурации (например, ~/.zshrc).
Шаг 5 - Тестирование
Подключитесь к серверу с помощью sqlcmd (как пользователь SA):
sqlcmd -S localhost -U SA
Password:Введите пароль, который вы задали при setup. После входа создайте базу данных hakaseDB:
create database hakaseDBПроверьте наличие базы данных:
select name from sys.databases
goВ списке должна появиться hakaseDB. Это подтверждает работоспособность сервера и инструментов.
Критерии приёмки
- Служба mssql-server запущена и активна.
- Порт 1433 открыт и доступен там, где это требуется.
- sqlcmd успешно подключается к серверу локально.
- База данных создаётся и видна в sys.databases.
Руководство по устранению неполадок
Если что-то не работает — выполните поэтапную проверку:
- Проверка статуса службы:
systemctl status mssql-server- Просмотр логов для диагностики ошибок:
journalctl -u mssql-server -b --no-pager- Проверка прослушиваемых портов:
ss -tlnp | grep 1433Проверка SELinux и firewalld: временно отключите или настройте правила, если они блокируют соединения (в продакшне настройте корректно, не отключайте без необходимости).
Убедитесь, что PATH содержит /opt/mssql-tools/bin и что sqlcmd доступен в текущей сессии.
Рекомендации по безопасности
- Смените пароль SA на сложный и храните его в безопасном хранилище.
- Ограничьте доступ к порту 1433 с помощью брандмауэра и сетевых правил.
- Развертывайте SSL/TLS для шифрования клиентских подключений.
- Подумайте об использовании интеграции с AD или управляемых учётных записей для аутентификации.
Важно: никогда не оставляйте служебные учётные записи с простыми паролями в публично доступных сетях.
Контроль соответствия и роли
Список задач по ролям:
Системный администратор:
- Подготовить ОС и репозитории.
- Настроить firewall и SELinux.
- Мониторить сервисы.
DBA:
- Провести начальную конфигурацию mssql-conf.
- Создать и проверить базы данных.
- Настроить бэкапы и точки восстановления.
Разработчик:
- Проверить подключение через sqlcmd.
- Выполнить тестовые сценарии CRUD.
Мини-методология развертывания (чеклист)
- Предпроверка: обновление ОС, проверка доступного места и памяти.
- Установка зависимостей (python2).
- Добавление репозиториев Microsoft.
- Установка mssql-server и первичная настройка.
- Установка mssql-tools и настройка PATH.
- Тестирование и валидация.
- Настройка безопасности и мониторинга.
Краткий словарь терминов
- mssql-conf — утилита конфигурации MSSQL Server.
- sqlcmd — консольный клиент для выполнения T-SQL команд.
- SA — системный администратор базы данных (логин с правами администратора).
- unixODBC — набор библиотек ODBC для Unix, необходим для некоторых клиентских программ.
Полезные команды (cheat sheet)
# Установка python2
dnf install python2
# Добавление репозиториев
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
# Установка сервера
dnf download mssql-server
sudo rpm -Uvh --nodeps mssql-server*rpm
sudo /opt/mssql/bin/mssql-conf setup
systemctl status mssql-server
# Открыть порт
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
# Установка инструментов
sudo dnf install -y mssql-tools unixODBC-devel
# Добавить в PATH
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
source ~/.bashrc
# Тестовое подключение
sqlcmd -S localhost -U SAСовместимость и примечания
- Пакеты для RHEL 7 часто работают на CentOS 8, но это не всегда гарантировано. Для долгосрочной эксплуатации используйте официально поддерживаемые версии и репозитории.
- Python 2 устарел. Если новые версии MSSQL потребуют Python 3, обновите окружение в соответствии с рекомендациями Microsoft.
Итог
Установка Microsoft SQL Server 2019 и mssql-tools на CentOS 8 состоит из семи основных шагов: подготовить систему, установить python2, добавить репозитории, установить сервер, выполнить первоначальную настройку, установить инструменты и протестировать подключение. После успешной установки обязательно реализуйте политику безопасности и настройте систему резервного копирования.
Ссылки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента