Risposte:
Puoi certamente provare l'approccio che tratterò di seguito, ma non so se qualcuno lo abbia provato con successo.
Non so se un altro modo funzionerebbe, ma le persone possono correggermi da MS SQL Server da quello che ricordo in realtà si basa sulle licenze per Microsoft Windows Server. In cima a questo SQL Server c'è un pessimo porco di risorse, quindi normalmente le organizzazioni cercano di separarlo dall'esecuzione con qualsiasi altra applicazione sul proprio cluster o server.
Una cosa che vorrei mettere in discussione è perché non provare Sybase come backend? La connettività da Linux a SQL Server e Sybase può passare FreeTDS
, che sembrerebbe identica al software client.
Sì, a fine novembre 2016 e come da docs.microsoft.com , è possibile installare l'anteprima pubblica di sql-server vNext CTP1 su Ubuntu 16.04 (non funziona su 14.04 perché il pacchetto OpenSSL è obsoleto e non funziona su 19.04 perché il pacchetto OpenSSL è troppo nuovo):
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 più recenti
sudo /opt/mssql/bin/mssql-conf setup
Per rimuoverlo
sudo apt-get remove --purge mssql-server
Per rimuovere i database generati
sudo rm -rf /var/opt/mssql/
Se si desidera verificare se funziona o meno, non dimenticare di disattivare il firewall
iptables -F
iptables -P INPUT ACCEPT
È possibile avviare SQL Server con:
systemctl start mssql-server
È possibile interrompere SQL Server con:
systemctl stop mssql-server
Per vedere il suo stato:
systemctl status mssql-server
Per avviare sql-server all'avvio:
systemctl enable mssql-server
Per disabilitare SQL-Server-start all'avvio:
systemctl disable mssql-server
E se vuoi anche gli strumenti da riga di comando
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
Per testarlo
sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit
E per aprire permanentemente la porta 1433 (sql-server default-port)
iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
o se usi ufw, puoi fare lo stesso digitando meno con
ufw allow 1433/tcp
Vedi anche persistenza del firewall e questo
Per Red Hat (firewalld):
firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload
Se non si desidera lavorare con gli strumenti da riga di comando, è possibile connettersi con SSMS da un laptop Windows.
Se non puoi usare sql-server sulla tua distribuzione (openssl troppo vecchio / openssl troppo nuovo / distro non supportato), puoi sempre usare l'immagine docker:
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
che installa la finestra mobile, estrae l'immagine docker-linux-SQL SQL Server 2017 più recente e mappa la porta 1433 nel contenitore sulla porta 2017 dell'host e imposta la licenza su "Sviluppatore", la password sa su TOP_SECRET e inoltre mappa / var / opt / mssql sul contenitore su / var / opt / mssql sull'host. Potrebbe essere necessario creare quella cartella con mkdir -p /var/opt/mssql
.
Da lì in poi, è possibile avviare il contenitore con docker start mssql_2017
e arrestare il contenitore con docker stop mssql_2017
.
Per lavorare graficamente con sql-server su Linux, è possibile usare AzureDataStudio , scaricare il pacchetto deb dalla sua pagina github e installarlo consudo dpkg -i azuredatastudio-linux-1.12.2.deb