Instalar Microsoft SQL Server 2017 en CentOS. De muchos es sabido, que no soy nada partidario del software privativo y menos si proviene de Microsoft. Pero dado que un amigo me lo a solicitado y a pesar que existen grandes alternativas free o open source, como:
lo escribiremos.
En este articulo veremos como instalar y configurar Microsoft SQL Server 2017 en Linux. Usaremos la distribución Centos, evidentemente este manual de instalación es compatible con RedHat (Rhel) y todos sus derivados.
Instalar Microsoft SQL Server 2017
Instalamos los repositorios.
yum install curl
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo -o /etc/yum.repos.d/mssql-server-2017.repo
curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/msprod.repo
yum -y install mssql-server mssql-tools unixODBC-devel
Una vez instalada, vamos a la configuración inicial.
/opt/mssql/bin/mssql-conf setup
Configura según tus necesidades:
/opt/mssql/bin/mssql-conf setup Elije la edición de 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) 7) Enterprise Core (PAID) 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. # selecciona la edición que quieres usar 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 # aceptas los términos de la licencia? Do you accept the license terms? [Yes/No]:y # Establece la password del admin Enter the SQL Server system administrator password: Confirm the SQL Server system administrator password: Configuring SQL Server... 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. [root@dlp ~]# systemctl status mssql-server * 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 Thu 2017-10-05 19:24:33 JST; 50min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 1472 (sqlservr) CGroup: /system.slice/mssql-server.service +--1472 /opt/mssql/bin/sqlservr +--1493 /opt/mssql/bin/sqlservr Oct 05 19:24:38 dlp.srv.world sqlservr[1472]: 2017-10-05 19:24:38.50 spid11s.... Hint: Some lines were ellipsized, use -l to show in full.
Guarda y cierra.
Comprobamos el estado.
systemctl status mssql-server
Ejemplo de salida:
* 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 Thu 2017-11-07 14:24:33 JST; 50min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 1472 (sqlservr) CGroup: /system.slice/mssql-server.service +--1472 /opt/mssql/bin/sqlservr +--1493 /opt/mssql/bin/sqlservr
Nov 07 14:24:38 mi.host.server sqlservr[1472]: 2017-11-07 14:24:38.50 spid11s.... Hint: Some lines were ellipsized, use -l to show in full.
Ahora ejecuta.
echo 'export PATH=$PATH:/opt/mssql-tools/bin' > /etc/profile.d/mssql.sh source /etc/profile.d/mssql.sh
Si usas Firewalld le das permisos.
firewall-cmd --add-port=1433/tcp --permanent
reinicia el firewalld.
firewall-cmd --reload
Nos conectamos y verificamos que este funcionando correctamente.
sqlcmd -S localhost -U SA #Password:*******(la password que pusimos en el archivo de configuración) ### Ejemplo de salida # show system databases 1> select name,database_id from sys.databases; 2> go name database_id ------------- ----------- master 1 tempdb 2 model 3 msdb 4 (4 rows affected) # show system users 1> select name from sysusers; 2> go name ----------------------------------------- ##MS_AgentSigningCertificate## ##MS_PolicyEventProcessingLogin## db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin db_denydatareader db_denydatawriter db_owner db_securityadmin dbo guest INFORMATION_SCHEMA public sys (16 rows affected) # show current user 1> select current_user; 2> go ------------------------------- dbo (1 rows affected) # quit 1> exit
Recuerda que Microdoft SQL Server, «NO ES GRATIS«, si lo vas a usar en un entorno de producción, necesitas una licencia.
Excelente tutorial, Felicitaciones…!! provee varios antes de el tuyo y ninguno me funciono bien….
Gracias….!!
Salu2
Gracias a ti por visitarnos.
Muy buen post, para las pruebas si me quedo a la primera, nada mas que tengo un inconveniente, algunas aplicaciones usan o trabajan mediante instancias, aqui en este caso como se le podria crear una instancia.
saludos