sql >> Base de Datos >  >> RDS >> Database

Cómo instalar Microsoft SQL en Linux

En este artículo, discutiremos cómo instalar Microsoft SQL o MSSQL en Linux. Microsoft SQL, conocido coloquialmente como MSSQL, es un sistema de gestión de bases de datos relacionales creado por Microsoft. MySQL y PostgreSQL de código abierto suelen ser sinónimos de distribuciones de Linux, pero también se admite trabajar con MSSQL en Linux. MSSQL ofrece algunas características que sus contrapartes de código abierto no ofrecen y, según los requisitos de la aplicación, podría ser la opción correcta para un RDBMS. En este tutorial, veremos cómo instalar MSSQL en CentOS 7 y Ubuntu 16.04.

Comprobación previa al vuelo

  • Deberá verificar que su servidor tenga al menos 2 GB de memoria
  • Estas instrucciones se realizan en servidores CentOS 7 y Ubuntu 16.04 LTS respectivamente como usuario root

Cent OS 7

Paso 1:Agregue el repositorio de vista previa de MSSQL 2019

Primero, como práctica recomendada, asegúrese de que todos los paquetes estén actualizados:

root@centos ~]# yum update -y

A continuación, debemos decirle al administrador de paquetes yum dónde buscar el paquete mssql-server agregando el repositorio apropiado:

root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo

Paso 2:Instalar SQL Server

Ahora que yum conoce el repositorio de MSSQL, podemos usar yum para instalar el paquete:

root@centos ~]# yum install -y mssql-server

Paso 3:configurar el servidor MSSQL

A continuación, debemos configurar SQL con una contraseña de administrador del sistema y confirmar la edición que queremos usar. Este tutorial usará la edición Developer, opción 2, ya que es gratis:

root@centos ~]# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
  1) Evaluation (free, no production use rights, 180-day limit)
  2) Developer (free, no production use rights)
  3) Express (free)
  4) Web (PAID)
  5) Standard (PAID)
  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]:Yes

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...

This is an evaluation version.  There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

Después de eso, debemos verificar que el servicio mssql se esté ejecutando:

root@centos ~]# systemctl status mssql-server

La salida debería verse así:

mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-10-23 20:18:03 EDT; 2min 45s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 61529 (sqlservr)
   CGroup: /system.slice/mssql-server.service
           ├─61529 /opt/mssql/bin/sqlservr
           └─61549 /opt/mssql/bin/sqlservr

Paso 4 (Opcional):Permitir conexiones remotas

Si desea que su servidor SQL sea accesible de forma remota, deberá abrir el puerto de SQL Server:

Nota :Proceda con precaución. Los cortafuegos están en su lugar para mantener su servidor seguro al limitar el acceso a él. A menos que planee acceder a SQL Server de forma remota, no es necesario abrir este puerto.

root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent

Después de agregar la regla, debemos volver a cargar nuestras reglas de firewall y verificar que el puerto esté abierto:

[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp

Paso 5:Agregue el repositorio de Microsoft Red Hat

Ahora, necesitamos una forma de interactuar con nuestro servidor SQL. Primero, agreguemos otro repositorio para que podamos usar yum para instalar las herramientas de línea de comandos de SQL Server

root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

Paso 6:Instale y configure las herramientas de línea de comandos de MSSQL Server

Ahora que yum conoce los paquetes que queremos instalar, debemos instalarlos. Es importante tener en cuenta que, durante la instalación de estos paquetes, habrá un par de indicaciones interactivas para aceptar los términos de la licencia:

root@centos ~]# yum install -y mssql-tools unixODBC-devel

Para facilitar su uso, podemos agregar la ruta

/opt/mssql-tools/bin/ 

a la variable PATH en el servidor para que podamos ejecutar comandos sql desde cualquier ubicación en el servidor:

root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

root@centos ~]# source ~/.bashrc

El paso final es verificar que podemos hacer una conexión a SQL Server:

root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>

Ubuntu 18.04 LTS

Paso 1:Agregue el repositorio de vista previa de MSSQL Server Ubuntu 2019

Primero, actualicemos los paquetes del servidor:

root@ubuntu1604:~# apt-get update -y

Una vez que se actualizan los paquetes del servidor, debemos agregar las claves GPG para el repositorio que queremos agregar. Las claves GPG son una forma para que los usuarios de Linux verifiquen la validez de los archivos y confirmen que provienen de fuentes confiables:

t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Ahora que las claves GPG están en su lugar, podemos agregar el repositorio:

root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"

El repositorio que acabamos de agregar requiere una conexión HTTPS. Para asegurarnos de que apt pueda conectarse al repositorio, debemos asegurarnos de que pueda conectarse a través de https:

root@ubuntu1604:~# apt-get install -y apt-transport-https

Paso 2:Instale el servidor MSSQL

Ahora que el repositorio que contiene los paquetes del servidor MSSQL está disponible, todo lo que queda por hacer es asegurarse de que apt conozca el nuevo repositorio e instalar el servidor MSSQL:

apt-get update -y
apt-get install -y mssql-server

Paso 3:configurar el servidor MSSQL

El paso de configuración es el mismo tanto en CentOS 7 como en Ubuntu 16.04. Durante el proceso de configuración, habrá indicaciones interactivas para elegir la edición de SQL Server, aceptar los términos de la licencia e ingresar una contraseña de administrador de SQL:

root@ubuntu1604:~# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
  1) Evaluation (free, no production use rights, 180-day limit)
  2) Developer (free, no production use rights)
  3) Express (free)
  4) Web (PAID)
  5) Standard (PAID)
  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]:Yes

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...

This is an evaluation version.  There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

MSSQL Server ahora debería estar ejecutándose y habilitado. Para verificar que este es, de hecho, el caso, podemos ejecutar este comando:

root@ubuntu1604:~# systemctl status mssql-server --no-pager
* mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-24 00:24:23 EDT; 3min 45s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 19446 (sqlservr)
    Tasks: 135
   Memory: 548.5M
      CPU: 12.499s
   CGroup: /system.slice/mssql-server.service
           |-19446 /opt/mssql/bin/sqlservr
           `-19485 /opt/mssql/bin/sqlservr

Paso 4 (Opcional):Permitir conexiones remotas

Si tiene la intención de utilizar una conexión remota a su nuevo SQL Server, será necesario abrir el puerto de SQL Server:

Nota :Proceda de nuevo con precaución. Los cortafuegos están en su lugar para mantener su servidor seguro al limitar el acceso a él. A menos que planee acceder a SQL Server de forma remota, no es necesario abrir este puerto.

Para que nuestras interacciones con el cortafuegos sean breves, instale ufw, también conocido como Cortafuegos sin complicaciones:

root@ubuntu1604:~# apt-get install -y ufw

Una vez instalado, ufw tiene que estar habilitado. Verá una advertencia que indica que su conexión SSH podría estar interrumpida. Si su sesión SSH está desconectada, vuelva a iniciar sesión y continúe:

root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup

Ahora que ufw está en su lugar y habilitado, es hora de permitir el tráfico a través del puerto 1433:

root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)

Paso 5:Instale y configure las herramientas de línea de comandos de MSSQL Server

Primero, como hicimos antes, necesitamos agregar algunas claves GPG nuevas para el repositorio que contiene las herramientas de línea de comandos de MSSQL:

root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Ahora podemos agregar el repositorio:

root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list

Después de eso, actualice apt e instale las herramientas de línea de comando:

root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev

Debería haber una o dos indicaciones interactivas para aceptar licencias durante la instalación que se parezcan a esto:

Hagamos que sea fácil ejecutar sqlcmd en cualquier parte del servidor:

root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
root@ubuntu1604:~# source ~/.bashrc

Finalmente, es hora de verificar que podemos conectarnos al servidor MSSQL localmente:

root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>

¡Comienza hoy mismo!

¿Necesita configurar un sistema de base de datos alternativo como MSSQL en Linux? ¿Necesita ayuda para configurar una base de datos existente o solucionar un problema relacionado que lo tiene frustrado? ¡Tenemos algunas de las mejores mentes de la industria trabajando para Liquid Web y estamos disponibles las 24 horas del día, los 365 días del año, esperando demostrarlo! Podemos intervenir en cualquier momento para brindarle la asistencia que necesita para solucionar los problemas.