Puis-je exécuter SQL Server sur Ubuntu?

10

Mon entreprise développe des logiciels avec deux faces: client et serveur. J'ai installé Microsoft SQL Server sur Windows et j'exécute le côté client sur Ubuntu avec une certaine configuration.

Mais je me demande: existe-t-il un moyen d'exécuter Ubuntu en tant que serveur à la place et d'y installer SQL Server?

fou du roi
la source

Réponses:

9

Vous pouvez certainement essayer l'approche que je vais décrire ci-dessous, mais je ne sais pas si quelqu'un l'a essayée avec succès.

  1. Installez un logiciel de virtualisation sur votre machine Ubuntu (VMWare, Xen, VirtualBox).
  2. Installez Microsoft Windows Server dans la machine virtuelle.
  3. Installez MS SQL Server sur le serveur Windows nouvellement installé.

Je ne sais pas si une autre méthode fonctionnerait, mais les gens peuvent me corriger le serveur MS SQL à partir de ce dont je me souviens, repose en fait sur les licences pour Microsoft Windows Server. En plus de cela, SQLServer est un très mauvais porc de ressources, donc normalement les organisations essaient de le séparer de l'exécution avec d'autres applications sur son propre cluster ou serveur.

Une chose que je voudrais remettre en question est pourquoi ne pas essayer Sybase comme backend? La connectivité de Linux à SQLServer et Sybase peut passer FreeTDS, ce qui serait identique à votre logiciel client.

Karlson
la source
1
Eh bien, cela répond à ma question, merci. Je ne gère pas la base de données ici, nous avons tout un tas de programmeurs, je travaille côté client et nous installons le serveur ET le client. Je suis actuellement en train de virtualiser un ubuntu sur ma machine Windows pour exécuter un tas de tests pour voir si ubuntu fonctionnerait. Avec le client oui. Sur le serveur .... pas si bien, car SQL ne fonctionnerait jamais sur Linux. Merci pour votre réponse
Jester
1
@Karlson: Autrefois vrai, mais désormais dépassé, fin novembre 2016.
WitchCraft
Cette URL aurait pu ressembler à un conte de fée à l'époque docs.microsoft.com/en-us/sql/linux/…
Asim
5

AVERTISSEMENT: EMBRASSER - PROLONGER - BAISER   ?

Oui, à la fin de novembre 2016 et selon docs.microsoft.com , vous pouvez installer l'aperçu public de sql-server vNext CTP1 sur Ubuntu 16.04 (ne fonctionne pas le 14.04 car le package OpenSSL est obsolète et ne fonctionne pas ne fonctionne pas le 19.04 car le paquet OpenSSL est trop nouveau):

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

Ou plus récent

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

Pour le retirer

sudo apt-get remove --purge mssql-server

Pour supprimer les bases de données générées

sudo rm -rf /var/opt/mssql/

Si vous souhaitez vérifier si cela fonctionne ou non, n'oubliez pas de désactiver le pare-feu

iptables -F
iptables -P INPUT ACCEPT  

Vous pouvez démarrer SQL-Server avec:

systemctl start mssql-server

Vous pouvez arrêter SQL-Server avec:

systemctl stop mssql-server

Pour voir son statut:

systemctl status mssql-server

Pour démarrer sql-server au démarrage:

systemctl enable mssql-server

Pour désactiver SQL-Server-start au démarrage:

systemctl disable mssql-server

Et si vous voulez aussi les outils de ligne de commande

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

Pour le tester

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

Et pour ouvrir définitivement le port 1433 (port par défaut du serveur sql)

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

ou si vous utilisez ufw, vous pouvez faire de même en tapant moins avec

ufw allow 1433/tcp

Voir aussi firewall-persistence et ce

Pour Red Hat (firewalld):

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

Si vous ne voulez pas travailler avec des outils de ligne de commande, vous pouvez vous connecter avec SSMS à partir d'un ordinateur portable Windows.

SSMS


Si vous ne pouvez pas utiliser sql-server sur votre distribution (openssl trop ancien / openssl trop nouveau / distro non pris en charge), vous pouvez toujours utiliser l'image 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

qui installe Docker, extrait la dernière image SQL-Server-2017 docker-linux-image d'Internet, et mappe le port 1433 dans le conteneur au port 2017 dans l'hôte, et définit la licence sur "Developer", le sa-Password sur TOP_SECRET et il mappe également / var / opt / mssql sur le conteneur à / var / opt / mssql sur l'hôte. Vous devrez peut-être créer ce dossier avec mkdir -p /var/opt/mssql.

À partir de là, vous pouvez démarrer le conteneur avec docker start mssql_2017et l'arrêter avec docker stop mssql_2017.

Pour travailler graphiquement avec sql-server sous Linux, vous pouvez utiliser AzureDataStudio , télécharger le paquet deb à partir de sa page github et l'installer avecsudo dpkg -i azuredatastudio-linux-1.12.2.deb

La sorcellerie
la source
Voir aussi askubuntu.com/questions/850957/…
WitchCraft
Peut avoir besoin de créer un lien symbolique pour sqlcmdfonctionner après l'installation de mssql-tools askubuntu.com/a/870928/8151
Niroshan