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.