sql >> Database >  >> RDS >> Sqlserver

Hoe SQL Server 2017 &2019 gelijktijdig op een Mac te draaien

Terwijl ik dit schrijf, zijn er twee versies van SQL Server die op een Mac kunnen worden uitgevoerd:SQL Server 2017 en SQL Server 2019 Preview. In dit artikel wordt uitgelegd hoe u deze beide op een Mac kunt uitvoeren, zodat ze tegelijkertijd worden uitgevoerd. U hoeft de ene niet te verwijderen voordat u de andere installeert.

De sleutel is om voor elke instantie een ander TCP-poortnummer te gebruiken (de TCP-poort waaraan de containers op de hostcomputer zijn toegewezen). Als u dit niet doet, krijgt u een foutmelding. SQL Server gebruikt standaard poort 1433, wat prima te gebruiken is voor een van uw instances, maar niet voor beide. Daarom moet u dit voor ten minste één van uw installaties wijzigen.

SQL Server downloaden

Bij deze instructies wordt ervan uitgegaan dat Docker op uw Mac is geïnstalleerd en actief is. Je hebt Docker nodig om SQL Server op je Mac uit te voeren (tenzij je ervoor kiest om het op Windows te installeren via een VM, maar dat is niet wat we hier doen). Als je Docker niet hebt, ga dan naar het gedeelte 'Gedetailleerde instructies' onderaan dit artikel.

Voer de volgende opdracht uit om de nieuwste SQL Server 2017-afbeelding te downloaden:

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

Voer de volgende opdracht uit om SQL Server 2019 Preview te downloaden:

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

Houd er rekening mee dat dit de nieuwste release is op het moment van schrijven. Raadpleeg de officiële SQL Server-repository op de Docker-website voor de nieuwste afbeelding.

Laat de containers lopen

Nu beide container-images zijn gedownload, voert u de volgende opdrachten uit:

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

Verander de naam en het wachtwoord in uw eigen. Als je een andere release gebruikt, verander het pad dienovereenkomstig.

In dit geval maak ik een SQL Server 2017-container en een SQL Server 2019-container en wijs deze toe aan de TCP-poorten 1401 en 1402 op de hostcomputer. In beide gevallen luistert SQL Server op poort 1433 in de container.

Dat is alles. U zou nu SQL Server 2017 en SQL Server 2019 gelijktijdig op uw Mac moeten hebben staan!

Verbinding maken met uw SQL Server-instanties

U moet het poortnummer toevoegen wanneer u verbinding maakt met elke instantie. Hier is een voorbeeld van het gebruik van de opdrachtregeltool mssql-cli om verbinding te maken met de SQL Server 2017-instantie:

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

Sommige GUI-tools hebben mogelijk een apart veld voor de poort. Anders zou u dezelfde Localhost,1401 . moeten kunnen gebruiken formaat.

Gedetailleerde instructies

De bovenstaande instructies gaan ervan uit dat je Docker op je Mac hebt en dat je al enige kennis hebt van het installeren en verbinden met SQL Server op een Mac. Als je dat niet doet, zouden de volgende twee artikelen moeten helpen.

  • SQL Server (2017) installeren op een Mac

    Dit artikel laat zien hoe u SQL Server installeert met de standaardpoortinstelling (1433:1433). Omvat het installeren van Docker en verbinding maken met SQL Server vanaf een opdrachtregelinterface, evenals koppelingen naar GUI-tools.

  • SQL Server 2019 installeren op een Mac

  • Dit artikel laat zien hoe u SQL Server installeert met een andere poort (1400:1433). Het begint eigenlijk op de standaardpoort, maar toont u vervolgens de fout die u zou krijgen als u twee instanties op dezelfde poort probeert uit te voeren. Vervolgens wordt weergegeven hoe u die poort kunt wijzigen (net als in het bovenstaande voorbeeld). Dit artikel bevat ook het installeren van Docker en het verbinden met SQL Server vanaf een opdrachtregelinterface, evenals koppelingen naar GUI-tools.

  1. Python:gegevens opvragen op geluid

  2. Is er een Max-functie in SQL Server die twee waarden aanneemt, zoals Math.Max ​​in .NET?

  3. JLabel bijwerken via SetIcon van bytea-gegevenstype in postgres

  4. Virtuele cloudmachines vergelijken met beheerde clouddatabases