Как мне установить MSSQL Server и / или Tools для Linux на 16.04?

14

Этот пост был создан, чтобы попытаться стать канонической парой вопросов / ответов «поймать все» для вопросов «Как установить сервер MSSQL» и «Как установить инструменты сервера MSSQL».

Я хочу настроить MS SQL Server для Linux и, возможно, его инструменты (на самом сервере или других системах), чтобы я мог взаимодействовать с SQL Server. Как я могу сделать это?

Томас Уорд
источник
1
Обратите внимание, что у меня есть сервер MSSQL, доступный через 16.04, и инструменты на этом же сервере. Я использую MSSQL Management Studio со своего компьютера Windows для управления всем, а также DataGrip и другие интерфейсы Python для фактического использования MSSQL Server и управления им.
Томас Уорд

Ответы:

18

Этот ответ касается установки MSSQL Server и Tools для любой системы 16.04. Он не охватывает решение Docker для получения MSSQL Server в системе. Для MSSQL Server будет написан отдельный ответ через опцию установки Docker для SQL Server.

Здесь есть несколько различных компонентов только в пакетах из репозиториев Microsoft.

  1. mssql-server - Предварительный просмотр Microsoft SQL Server для Linux
  2. mssql-tools- sqlcmdи т. д. команды для взаимодействия с MSSQL сервером.

Здесь есть несколько злых предостережений:

  1. У вас должно быть 16,04 для всех компонентов; это не работает на старых версиях.
  2. На данный момент доступны только 64-битные версии пакетов. Вы не сможете запускать mssql-serverи, возможно, не будете использовать инструменты, если только вы не находитесь на 64-битных системах.

Все команды ниже взяты из предложенных Microsoft шагов. Я не предлагаю использовать некоторые из этих команд вне точного следования этим шагам из-за характера угроз безопасности, которые представляют некоторые из описанных здесь процедур (например, вход в оболочку суперпользователя).


mssql-serverшаги установки ( источник )

Эти шаги охватывают настройку MS SQL Server для Linux Public Preview. Этот метод и метод Docker являются двумя методами настройки MSSQL Server для Linux.

Предостережения:

  1. Вам необходимо иметь 64-битную систему для MSSQL Server.
  2. Для установки MSSQL Server вам необходимо как минимум 4 ГБ ОЗУ в системе.
  3. Для этого у вас должна быть Ubuntu 16.04, в настоящее время на их серверах нет других версий.

Чтобы установить mssql-serverпакет в Ubuntu, выполните следующие действия:

  1. Войдите в режим суперпользователя.

    sudo su
    
  2. Импортируйте ключи GPG публичного репозитория:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. Зарегистрируйте репозиторий Microsoft SQL Server Ubuntu:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
    
  4. Выйдите из режима суперпользователя.

    exit
    
  5. Выполните следующие команды для установки SQL Server:

    sudo apt-get update
    sudo apt-get install -y mssql-server
    
  6. После завершения установки пакета запустите скрипт конфигурации и следуйте инструкциям.

    sudo /opt/mssql/bin/mssql-conf setup
    
  7. После завершения настройки убедитесь, что служба работает:

    systemctl status mssql-server
    

Смотрите: Быстрый старт: Установите SQL Server и создайте базу данных в Ubuntu .


mssql-toolsШаги установки ( источник )

В этом разделе описана настройка, в mssql-toolsкоторую входит sqlcmdкоманда. Эти шаги необходимы для любых систем, в которых вы хотите использовать sqlcmdкоманду или другие исходные программы Microsoft для Linux для взаимодействия с MSSQL-сервером.

(Это не требуется для других библиотек Python для взаимодействия с MSSQL или других утилит, таких как DataGrip, которые могут взаимодействовать с серверами и т. Д., Для которых не требуется mssql-toolspacakge для работы.)

Предостережения:

  1. Я не нашел версию этого для не-64-битных систем. Вам может понадобиться 64-битная система, чтобы эти инструменты работали.
  2. Вы можете использовать инструменты только 16.04.
  1. Войдите в режим суперпользователя

    sudo su
    
  2. Импортируйте ключи GPG публичного репозитория:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. Зарегистрируйте репозиторий Microsoft Ubuntu:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
    
  4. Выход из режима суперпользователя:

    exit
    
  5. Обновите список источников и выполните команду установки:

    sudo apt-get update
    sudo apt-get install mssql-tools
    
Томас Уорд
источник
Как упомянуто в решении docker - здесь также следует сказать, что сервер mssql будет работать только на архитектуре amd64 (в отличие от arm или arm64, который предлагается в некоторых облаках).
userfuser
1
Стоит отметить, что sqlservr-setupбыл переименован в mssql-conf setup.
Том
В вашем сообщении говорится, sourceчто sql требует 2 ГБ, а не 4 ГБ Ram, как вы упоминали.
Оффир Пеер
9

Использование Docker (только amd64)

Также возможно запустить MSSQL Server в Ubuntu с помощью Docker. Это можно сделать, тщательно выполнив следующие шаги:

  1. Если вы используете Ubuntu 14.04 или любой другой выпуск старше Xenial (16.04) , вам необходимо установить более новую версию Docker, чем предоставляют архивы.

    Если это так, следуйте инструкциям на этой странице .

    Если нет, просто запустите:

    sudo apt-get install docker.io
    
  2. Убедитесь, что вы можете подключиться к локальному демону Docker, используя:

    docker info
    

    Если вы получите сообщение об ошибке, например Cannot connect to the Docker daemon., вам необходимо добавить себя в dockerгруппу:

    sudo usermod -a -G docker <USERNAME>
    

    ... где <USERNAME>заменяется вашим именем пользователя. Вам нужно будет выйти и снова войти, чтобы изменения вступили в силу.

  3. Извлеките образ MSSQL из Docker Hub:

    docker pull microsoft/mssql-server-linux
    
  4. Создайте на хосте каталог, в котором будут храниться данные из контейнера, и для удобства сохраните значение в переменной среды:

    export DIR=/var/lib/mssql
    sudo mkdir $DIR
    
  5. Запустите контейнер:

    docker run \
        -d \
        --name mssql \
        -e 'ACCEPT_EULA=Y' \
        -e 'SA_PASSWORD=<PASSWORD>' \
        -p 1433:1433 \
        -v $DIR:/var/opt/mssql \
        microsoft/mssql-server-linux
    

    Замените <PASSWORD>на уникальное значение, которое будет использоваться для аутентификации позже.

  6. Убедитесь, что контейнер запущен без ошибок:

    docker ps -af name=mssql
    

    Если STATUSстолбец показывает «Up ...» под STATUSстолбцом, то все работает правильно. Если, однако, отображается ошибка:

    CONTAINER ID ... STATUS ...
    ba79fa12fbf1 ... Exited (0) 3 seconds ago ...
    

    ... тогда вы можете использовать docker logs mssqlдля получения дополнительной информации.

Чтобы подключиться к контейнеру из приложения, просто укажите порт 1433.

По умолчанию контейнер запускается при первом runего запуске . Вы можете остановить контейнер с помощью:

docker stop mssql

Чтобы удалить контейнер, сначала остановите его, а затем выполните:

docker rm mssql
Натан Осман
источник
Проверено под 18.04. Спасибо, это работает, и это очень быстро.
Джо Эйферт
Имя пользователя: sa, пароль должен содержать не менее 8 символов, цифр и прописных и строчных букв. В противном случае вы не можете подключиться. Более подробная информация здесь: hub.docker.com/r/microsoft/mssql-server-linux
Джо Эйфер