Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment exécuter SQL Server 2017 et 2019 simultanément sur un Mac

Au moment où j'écris ceci, il existe deux versions de SQL Server qui peuvent être exécutées sur un Mac :SQL Server 2017 et SQL Server 2019 Preview. Cet article explique comment exécuter ces deux éléments sur un Mac afin qu'ils s'exécutent simultanément. Inutile de désinstaller l'un avant d'installer l'autre.

La clé consiste à utiliser un numéro de port TCP différent pour chaque instance (le port TCP auquel les conteneurs sont mappés sur la machine hôte). Si vous ne le faites pas, vous obtiendrez une erreur. SQL Server utilise le port 1433 par défaut, ce qui convient à l'une de vos instances, mais pas aux deux. Par conséquent, vous devrez modifier cela pour au moins une de vos installations.

Télécharger SQL Server

Ces instructions supposent que Docker est installé et exécuté sur votre Mac. Vous avez besoin de Docker pour exécuter SQL Server sur votre Mac (sauf si vous choisissez de l'installer sur Windows via une VM, mais ce n'est pas ce que nous faisons ici). Si vous n'avez pas Docker, passez à la section "Instructions détaillées" au bas de cet article.

Pour télécharger la dernière image SQL Server 2017, exécutez la commande suivante :

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

Pour télécharger SQL Server 2019 Preview, exécutez la commande suivante :

sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu

Notez qu'il s'agit de la dernière version au moment de la rédaction. Pour la dernière image, consultez le référentiel officiel de SQL Server sur le site Web de Docker.

Exécuter les conteneurs

Maintenant que les deux images de conteneur ont été téléchargées, exécutez les commandes suivantes :

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=BigStrong#Pwd2017" -p 1401:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=BigStrong#Pwd2019" -p 1402:1433 --name sql2 -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu

Remplacez le nom et le mot de passe par les vôtres. De plus, si vous utilisez une version différente, modifiez le chemin en conséquence.

Dans ce cas, je crée un conteneur SQL Server 2017 et un conteneur SQL Server 2019, et les mappe sur les ports TCP 1401 et 1402 sur la machine hôte. Dans les deux cas, SQL Server écoute sur le port 1433 dans le conteneur.

C'est tout. Vous devriez maintenant avoir SQL Server 2017 et SQL Server 2019 exécutés simultanément sur votre Mac !

Connexion à vos instances SQL Server

Vous devrez ajouter le numéro de port lors de la connexion à chaque instance. Voici un exemple d'utilisation de l'outil de ligne de commande mssql-cli pour se connecter à l'instance SQL Server 2017 :

mssql-cli -S Localhost,1401 -U sa -P BigStrong#Pwd2017

Certains outils GUI peuvent avoir un champ séparé pour le port. Sinon, vous devriez pouvoir utiliser le même Localhost,1401 formater.

Instructions détaillées

Les instructions ci-dessus supposent que vous avez Docker sur votre Mac et que vous avez déjà une certaine connaissance de l'installation et de la connexion à SQL Server sur un Mac. Si ce n'est pas le cas, les deux articles suivants devraient vous aider.

  • Installer SQL Server (2017) sur un Mac

    Cet article explique comment installer SQL Server à l'aide du paramètre de port par défaut (1433:1433). Inclut l'installation de Docker et la connexion à SQL Server à partir d'une interface de ligne de commande, ainsi que des liens vers des outils d'interface graphique.

  • Installer SQL Server 2019 sur un Mac

  • Cet article explique comment installer SQL Server à l'aide d'un port différent (1400:1433). En fait, il démarre sur le port par défaut, mais vous montre ensuite l'erreur que vous obtiendriez si vous essayez d'exécuter deux instances sur le même port. Il montre ensuite comment changer ce port (comme dans l'exemple ci-dessus). Cet article inclut également l'installation de Docker et la connexion à SQL Server à partir d'une interface de ligne de commande, ainsi que des liens vers des outils d'interface graphique.