¿Puedo ejecutar SQL Server en Ubuntu?

10

Mi empresa desarrolla software con dos lados: cliente y servidor. He instalado 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?

Bufón
fuente

Respuestas:

9

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

  1. Instale el 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 nuevo Windows Server instalado.

No sé si alguna otra forma funcionaría, pero la gente puede corregirme el servidor MS SQL de lo que puedo recordar en realidad se basa en las licencias para Microsoft Windows Server. Además de esto, SQLServer es una fuente de recursos bastante mala, 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 FreeTDS, lo que sería idéntico al software de su cliente.

Karlson
fuente
1
Bueno, esta contesta mi pregunta, gracias. No administro la base de datos aquí, tenemos un montón de programadores, estoy trabajando en el lado del cliente e instalamos tanto el servidor como el cliente. Actualmente estoy virtualizando un ubuntu en mi máquina Windows para ejecutar un montón de pruebas para ver si ubuntu funcionaría. Con cliente si. En el servidor ... no tan bien, ya que SQL nunca funcionaría en Linux. Gracias por su respuesta
Jester
1
@Karlson: Solía ​​ser cierto, pero ahora está desactualizado, a fines de noviembre de 2016.
WitchCraft
Esta URL podría haber parecido un cuento de hadas en ese entonces docs.microsoft.com/en-us/sql/linux/…
Asim
5

ADVERTENCIA: ABRAZAR - EXTENDER -   ¿ GOTA ?

Sí, a finales de noviembre de 2016, y según docs.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) 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 desea verificar si funciona o no, no olvide 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 SQL-Server-start en el momento del arranque:

systemctl disable mssql-server

Y si también quieres el herramientas 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 usa ufw, puede hacer lo mismo escribiendo menos con

ufw allow 1433/tcp

Consulte también persistencia de firewall y this

Para Red Hat (Firewalld):

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 demasiado viejo / openssl demasiado nuevo / distro no compatible), siempre puede usar la imagen del acoplador:

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 la ventana acoplable, extrae la última imagen docker-linux-SQL-Server-2017 de Internet, y asigna el puerto 1433 en el contenedor al puerto 2017 en el host, y establece la licencia en "Desarrollador", la contraseña sa a TOP_SECRET y también asigna / var / opt / mssql en el contenedor a / var / opt / mssql en el host. Puede que tenga que crear esa carpeta con mkdir -p /var/opt/mssql.

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

Para trabajar gráficamente con sql-server en Linux, puede usar AzureDataStudio , descargar el paquete deb de su página github e instalarlo consudo dpkg -i azuredatastudio-linux-1.12.2.deb

Brujería
fuente
Véase también askubuntu.com/questions/850957/...
Brujería
Es posible que deba crear un enlace simbólico para que sqlcmdfuncione después de instalar mssql-tools askubuntu.com/a/870928/8151
Niroshan el