ADVERTENCIA:ABRAZAR - EXTENDER - SOLTAR  ?

ADVERTENCIA:ABRAZAR - EXTENDER - SOLTAR  ?

Mi empresa desarrolla software con dos caras: cliente y servidor. Instalé Microsoft SQL Server en Windows y estoy ejecutando el lado del cliente en Ubuntu con alguna configuración.

Pero me pregunto: ¿hay alguna manera de ejecutar Ubuntu como servidor e instalar SQL Server en él?

Respuesta1

Ciertamente puedes probar el enfoque que describiré a continuación, pero no sé si alguien lo ha probado con éxito.

  1. Instale software de virtualización en su máquina Ubuntu (VMWare, Xen, VirtualBox).
  2. Instale Microsoft Windows Server en la máquina virtual.
  3. Instale MS SQL Server en el servidor Windows recién instalado.

No sé si funcionaría de otra manera, pero la gente puede corregirme. Según puedo recordar, MS SQL Server depende de la licencia para Microsoft Windows Server. Además de esto, SQLServer es un acaparador de recursos bastante malo, por lo que normalmente las organizaciones intentan segregarlo para que no se ejecute con otras aplicaciones en su propio clúster o servidor.

Una cosa que me preguntaría es ¿por qué no probar Sybase como backend? La conectividad de Linux a SQLServer y Sybase puede pasar por FreeTDS, lo que sería idéntico al software de su cliente.

Respuesta2

ADVERTENCIA:ABRAZAR - EXTENDER - SOLTAR  ?

Sí, a finales de noviembre de 2016, y segúndocs.microsoft.com, puede instalar la vista previa pública de sql-server vNext CTP1 en Ubuntu 16.04 (no funciona en 14.04 porque el paquete OpenSSL está desactualizado y no funciona en 19.04 porque el paquete OpenSSL es demasiado nuevo):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/sqlservr-setup

o mas nuevo

sudo /opt/mssql/bin/mssql-conf setup

para eliminarlo

sudo apt-get remove --purge mssql-server

Para eliminar las bases de datos generadas

sudo rm -rf /var/opt/mssql/

Si quieres comprobar si funciona o no, no olvides apagar el firewall.

iptables -F
iptables -P INPUT ACCEPT  

Puede iniciar SQL-Server con:

systemctl start mssql-server

Puede detener SQL-Server con:

systemctl stop mssql-server

Para ver su estado:

systemctl status mssql-server

Para iniciar SQL-Server en el momento del arranque:

systemctl enable mssql-server

Para deshabilitar el inicio de SQL-Server en el momento del arranque:

systemctl disable mssql-server

Y si también quieres elherramientas de línea de comandos

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update 
sudo apt-get install mssql-tools

para probarlo

sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit

Y para abrir permanentemente el puerto 1433 (puerto predeterminado del servidor SQL)

iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

o si usas ufw, puedes hacer lo mismo escribiendo less con

ufw allow 1433/tcp

Ver tambiénpersistencia del firewallyeste

Para Red Hat (cortafuegos):

firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload

Si no desea trabajar con herramientas de línea de comandos, puede conectarse con SSMS desde una computadora portátil con Windows.

SSMS


Si no puede usar sql-server en su distribución (openssl es demasiado antiguo/openssl demasiado nuevo/distro no compatible), siempre puede usar la imagen de la ventana acoplable:

sudo apt-get install docker.io 
docker pull mcr.microsoft.com/mssql/server:2017-latest

docker run -d -p 2017:1433 --name mssql_2017 -e MSSQL_SA_PASSWORD =TOP_SECRET -e ACCEPT_EULA=Y  -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

que instala Docker, extrae la última imagen SQL-Server-2017 de Docker-Linux de Internet, asigna el puerto 1433 en el contenedor al puerto 2017 en el host y establece la licencia en "Desarrollador", la contraseña sa en TOP_SECRET y también asigna /var/opt/mssql en el contenedor a /var/opt/mssql en el host. Quizás tengas que crear esa carpeta con mkdir -p /var/opt/mssql.

A partir de ahí, puede iniciar el contenedor con docker start mssql_2017y detenerlo con docker stop mssql_2017.

Para trabajar gráficamente con sql-server en Linux, puede usarAzureDataStudio, descargar elpaquete-debdesde su página de github e instálelo consudo dpkg -i azuredatastudio-linux-1.12.2.deb

información relacionada