¿Cómo instalo MSSQL Server y / o Tools para Linux en 16.04?

14

Esta publicación fue creada para tratar de ser un par de preguntas / respuestas canónicas "para todos" para las preguntas "Cómo instalo el servidor MSSQL" y "Cómo instalo las herramientas del servidor MSSQL".

Estoy buscando configurar MS SQL Server para Linux, y posiblemente sus herramientas (en el servidor u otros sistemas) para poder interactuar con SQL Server. ¿Cómo puedo hacer esto?

Thomas Ward
fuente
1
Tenga en cuenta que tengo un servidor MSSQL disponible a través de 16.04, y las herramientas en ese mismo servidor. Utilizo MSSQL Management Studio desde mi computadora con Windows para administrar todo, y DataGrip y otras interfaces de Python para usar realmente el servidor MSSQL y administrarlo.
Thomas Ward

Respuestas:

18

Esta respuesta cubre la instalación de MSSQL Server and Tools para cualquier sistema 16.04. No cubre la solución Docker para obtener el servidor MSSQL en un sistema. Se escribirá una respuesta separada para el servidor MSSQL a través de la opción de instalación de Docker para SQL Server.

Aquí hay un par de componentes diferentes en paquetes de repositorios de Microsoft solamente.

  1. mssql-server - Vista previa de Microsoft SQL Server para Linux
  2. mssql-tools- sqlcmd, etc. comandos para interactuar con el servidor MSSQL.

Hay algunas advertencias malvadas aquí:

  1. Debe tener 16.04 para todos los componentes; NO funciona en versiones anteriores.
  2. Por el momento, solo hay versiones de 64 bits de los paquetes disponibles. No podrá ejecutar mssql-servery posiblemente tampoco las herramientas a menos que esté en sistemas de 64 bits.

Todos los comandos a continuación son de los pasos sugeridos por Microsoft. No sugiero usar algunos de estos comandos fuera de seguir estos pasos exactamente , debido a la naturaleza de los riesgos de seguridad que algunos de los procedimientos aquí introducidos (como iniciar sesión en un shell de superusuario).


mssql-serverpasos de instalación ( fuente )

Estos pasos cubren la configuración de MS SQL Server para Linux Public Preview. Este y el método Docker son los dos métodos para configurar el servidor MSSQL para Linux.

Advertencias:

  1. Debe tener un sistema de 64 bits para el servidor MSSQL.
  2. Necesita al menos 4 GB de RAM en el sistema para instalar el servidor MSSQL.
  3. Usted debe tener Ubuntu 16.04 para esto, actualmente no hay otras versiones en sus servidores de repositorios.

Para instalar el mssql-serverpaquete en Ubuntu, siga estos pasos:

  1. Ingrese al modo de superusuario.

    sudo su
    
  2. Importe las claves GPG del repositorio público:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. Registre el repositorio de Ubuntu de Microsoft SQL Server:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
    
  4. Salga del modo superusuario.

    exit
    
  5. Ejecute los siguientes comandos para instalar SQL Server:

    sudo apt-get update
    sudo apt-get install -y mssql-server
    
  6. Una vez que finalice la instalación del paquete, ejecute el script de configuración y siga las instrucciones.

    sudo /opt/mssql/bin/mssql-conf setup
    
  7. Una vez que se realiza la configuración, verifique que el servicio se esté ejecutando:

    systemctl status mssql-server
    

Consulte: Inicio rápido: instale SQL Server y cree una base de datos en Ubuntu .


mssql-toolsPasos de instalación ( fuente )

Esta sección cubre la configuración de la mssql-toolscual incluye el sqlcmdcomando. Estos pasos son necesarios para cualquier sistema en el que desee utilizar el sqlcmdcomando u otras utilidades originadas por Microsoft en Linux para interactuar con un servidor MSSQL.

(Esto no es necesario para otras bibliotecas de Python para interactuar con MSSQL u otras utilidades como DataGrip que pueden interactuar con servidores, etc., que no necesitan el mssql-toolspaquete para funcionar).

Advertencias:

  1. No he encontrado una versión de esto para sistemas que no sean de 64 bits. Es posible que necesite un sistema de 64 bits para que estas herramientas funcionen.
  2. Actualmente solo puede usar herramientas en 16.04.
  1. Ingrese al modo de superusuario

    sudo su
    
  2. Importe las claves GPG del repositorio público:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. Registre el repositorio de Microsoft Ubuntu:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
    
  4. Salga del modo de superusuario:

    exit
    
  5. Actualice la lista de fuentes y ejecute el comando de instalación:

    sudo apt-get update
    sudo apt-get install mssql-tools
    
Thomas Ward
fuente
Como se mencionó en la solución docker: aquí también se debe decir que el servidor mssql solo funcionará en la arquitectura amd64 (a diferencia de arm o arm64, eso se ofrece en algunas nubes).
userfuser
1
Vale la pena señalar que se le sqlservr-setupha cambiado el nombre mssql-conf setup.
Tom
Dice en su sourceque sql requiere 2GB y no 4GB Ram como usted mencionó.
Offir Pe'er
9

Uso de Docker (solo amd64)

También es posible ejecutar el servidor MSSQL en Ubuntu usando Docker. Esto se puede hacer siguiendo cuidadosamente los pasos a continuación:

  1. Si está utilizando Ubuntu 14.04 o cualquier otra versión anterior a Xenial (16.04) , deberá instalar una versión más nueva de Docker que la que proporcionan los archivos.

    Si es así, siga las instrucciones en esta página .

    Si no, simplemente ejecute:

    sudo apt-get install docker.io
    
  2. Verifique que puede conectarse al demonio Docker local usando:

    docker info
    

    Si recibe un error como Cannot connect to the Docker daemon., deberá agregarse al dockergrupo:

    sudo usermod -a -G docker <USERNAME>
    

    ... donde <USERNAME>se reemplaza con su nombre de usuario. Deberá cerrar sesión y volver a iniciarla para que los cambios surtan efecto.

  3. Extraiga la imagen MSSQL de Docker Hub:

    docker pull microsoft/mssql-server-linux
    
  4. Cree un directorio en el host que almacene los datos del contenedor y mantenga el valor en una variable de entorno para mayor comodidad:

    export DIR=/var/lib/mssql
    sudo mkdir $DIR
    
  5. Comience el contenedor:

    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
    

    Reemplace <PASSWORD>con un valor único que se usará para la autenticación más adelante.

  6. Verifique que el contenedor se inició sin error:

    docker ps -af name=mssql
    

    Si la STATUScolumna muestra "Arriba ..." debajo de la STATUScolumna, entonces todo se está ejecutando correctamente. Sin embargo, si se muestra un error:

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

    ... entonces puede usar docker logs mssqlpara obtener más información.

Para conectarse al contenedor desde una aplicación, simplemente especifique el puerto 1433.

Por defecto, el contenedor se inicia la primera runvez. Puede detener el contenedor con:

docker stop mssql

Para quitar el contenedor, primero deténgalo y luego ejecute:

docker rm mssql
Nathan Osman
fuente
Probado bajo 18.04. Gracias, funciona y es muy rápido.
Joe Eifert
Nombre de usuario: sa, la contraseña debe tener al menos 8 caracteres y números y letras mayúsculas y minúsculas. De lo contrario, no puedes conectarte. Más información aquí: hub.docker.com/r/microsoft/mssql-server-linux
Joe Eifert