sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan kører du SQL Server 2017 og 2019 samtidigt på en Mac

Mens jeg skriver dette, er der to udgivelser af SQL Server, der kan køres på en Mac:SQL Server 2017 og SQL Server 2019 Preview. Denne artikel forklarer, hvordan du kører begge disse på en Mac, så de kører samtidigt. Det er ikke nødvendigt at afinstallere den ene, før du installerer den anden.

Nøglen er at bruge et andet TCP-portnummer for hver instans (den TCP-port, som containerne er knyttet til på værtsmaskinen). Hvis du ikke gør dette, får du en fejl. SQL Server bruger port 1433 som standard, hvilket er fint at bruge til en af ​​dine forekomster, men ikke begge. Derfor skal du ændre dette for mindst én af dine installationer.

Download SQL Server

Disse instruktioner antager, at du har Docker installeret og kører på din Mac. Du har brug for Docker for at køre SQL Server på din Mac (medmindre du vælger at installere det på Windows via en VM, men det er ikke det, vi gør her). Hvis du ikke har Docker, skal du gå til afsnittet "Detaljerede instruktioner" nederst i denne artikel.

For at downloade det seneste SQL Server 2017-billede skal du køre følgende kommando:

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

For at downloade SQL Server 2019 Preview skal du køre følgende kommando:

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

Bemærk, at dette er den seneste udgivelse i skrivende stund. For det seneste billede, tjek det officielle SQL Server-lager på Docker-webstedet.

Kør containerne

Nu hvor begge containerbilleder er blevet downloadet, skal du køre følgende kommandoer:

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

Skift navn og adgangskode til dit eget. Hvis du bruger en anden udgivelse, skal du også ændre stien i overensstemmelse hermed.

I dette tilfælde opretter jeg en SQL Server 2017-container og en SQL Server 2019-container og knytter dem til TCP-porte 1401 og 1402 på værtsmaskinen. I begge tilfælde lytter SQL Server på port 1433 i containeren.

Det er alt. Du skulle nu have SQL Server 2017 og SQL Server 2019 kørende samtidigt på din Mac!

Opretter forbindelse til dine SQL Server-instanser

Du skal tilføje portnummeret, når du opretter forbindelse til hver instans. Her er et eksempel på brug af kommandolinjeværktøjet mssql-cli til at oprette forbindelse til SQL Server 2017-forekomsten:

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

Nogle GUI-værktøjer har muligvis et separat felt for porten. Ellers burde du kunne bruge den samme Localhost,1401 format.

Udførlige instruktioner

Ovenstående instruktioner forudsætter, at du har Docker på din Mac, og at du allerede har en vis viden om at installere og oprette forbindelse til SQL Server på en Mac. Hvis du ikke gør det, bør de følgende to artikler hjælpe.

  • Installer SQL Server (2017) på en Mac

    Denne artikel viser, hvordan du installerer SQL Server ved hjælp af standardportindstillingen (1433:1433). Inkluderer installation af Docker og tilslutning til SQL Server fra en kommandolinjegrænseflade samt links til GUI-værktøjer.

  • Installer SQL Server 2019 på en Mac

  • Denne artikel viser, hvordan du installerer SQL Server ved hjælp af en anden port (1400:1433). Faktisk starter den på standardporten, men viser dig derefter den fejl, du vil få, hvis du prøver at køre to forekomster på den samme port. Det viser derefter, hvordan du ændrer den port (ligesom i eksemplet ovenfor). Denne artikel inkluderer også installation af Docker og tilslutning til SQL Server fra en kommandolinjegrænseflade samt links til GUI-værktøjer.

  1. PostgreSQL matchende interval mellem start- og sluttidspunkt i forhold til tidsstempel

  2. ORA - 00933 forveksling med indre sammenføjning og som

  3. Hvor er PostgreSQL-logfilerne på macOS?

  4. Løsning til ikke at udføre en DML-handling i en forespørgsel?