Jag har tidigare förklarat hur man installerar SQL Server på en Mac med SQL Server för Linux Docker-avbildningen.
Sedan dess har Apple släppt sitt M1-chip, som använder ARM-arkitektur. Detta kan orsaka problem när du försöker installera SQL Server. Problemet är att SQL Server i skrivande stund inte stöds på ARM-arkitekturen.
Lyckligtvis finns det ett alternativ.
Behållaravbildningen för Azure SQL Edge kan installeras på M1 Mac. Därför kan vi använda den bilden istället för SQL Server-bilden.
Azure SQL Edge är en optimerad relationsdatabasmotor anpassad för IoT- och IoT Edge-distributioner. Den är byggd på de senaste versionerna av SQL Server Database Engine, så du kan använda T-SQL-kod precis som när du använder SQL Server. Du kan också använda samma verktyg för att fråga Azure SQL Edge som du skulle använda med SQL Server (som SSMS, Azure Data Studio, etc).
I den här artikeln installerar jag Developer Edition av Azure SQL Edge på en Mac med M1-chippet.
Installera Docker
Eftersom vi installerar SQL Edge via en Docker-behållare måste vi ha Docker installerat.
Om du inte redan har Docker, ladda ner och installera den enligt följande:
- Hämta Docker från Docker-webbplatsen. Se till att ladda ner den för M1 Mac (knappen hette
Mac with Apple Chip
). när jag laddade ner den). - När den har laddats ned öppnar du
.dmg
fil och dra Docker.app-ikonen till din Applications-mapp enligt instruktionerna. - Starta Docker på samma sätt som du skulle starta alla andra program (t.ex. via mappen Applications, Launchpad, etc). När du öppnar Docker kan du bli ombedd att ange ditt lösenord. Fortsätt och ange ditt lösenord, eftersom Docker behöver detta för att köra.
Installera Azure SQL Edge
Nu när Docker är installerat kan vi gå vidare och installera Azure SQL Edge. Som nämnts använder denna SQL Server Database Engine, och vi kan därför använda den för att köra T-SQL-frågor, etc, som om vi frågade SQL Server.
Öppna ett terminalfönster och kör följande kommando:
docker pull mcr.microsoft.com/azure-sql-edge
Det hämtar/laddar ner behållaravbildningen till din lokala dator.
Du kan alternativt kontrollera behållaralternativen på Docker-webbplatsen om du föredrar det.
När nedladdningen är klar, kör följande kommando för att starta en instans av Docker-bilden som du just laddade ner:
sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=bigStrongPwd' -p 1433:1433 --name sqledge -d mcr.microsoft.com/azure-sql-edge
Se till att ändra bigStrongPwd
till ett valfritt starkt lösenord. Du kan också ändra värdet på --name
parameter om du vill.
Som standard körs behållaren med Developer Edition. Du kan köra Premium Edition genom att lägga till -e 'MSSQL_PID=Premium'
.
Kontrollera Docker Container
Vi kan använda följande kommando för att kontrollera om behållaren är igång:
docker ps
Resultat:
a190dd199b17 mcr.microsoft.com/azure-sql-edge "/opt/mssql/bin/perm…" För 10 sekunder sedan Upp 9 sekunder 1401/tcp, 0.0.0.0:1433->1433/tcp sqledge>Detta visar mig att behållaren faktiskt är igång.
Om din behållare av någon anledning inte är igång, prova följande kommando:
docker start sqledge
Ersätt
sqledge
med namnet på din behållare.Med behållaren igång kan vi nu gå vidare och ansluta till SQL Edge.
Anslut till SQL Edge
Du kan nu ansluta till din Azure SQL Edge-installation genom att använda informationen som tillhandahålls när du startar Docker-avbildningen.
Här är en skärmdump av anslutning till Azure SQL Edge via Azure Data Studio:
Så här installerar du Azure Data Studio på en Mac.
Microsoft uppger att Azure Data Studio "för närvarande inte stöder ARM-arkitekturen" men jag hade inga problem med att installera den på min M1 Mac (dvs. med ARM-arkitektur).
Kör SQL-frågor
När du väl är ansluten till SQL Edge kan du skapa databaser, köra T-SQL-frågor, etc (T-SQL är SQL Servers tillägg till SQL).
Se min SQL-handledning för att komma igång med att köra SQL-frågor.
Funktioner som stöds i SQL Edge
Jag bör nämna att vissa SQL Server-funktioner inte stöds i SQL Edge. Azure SQL Edge stöder en delmängd av funktionerna som stöds SQL Server 2019 på Linux.
Som sagt, SQL Edge har vissa funktioner som inte är tillgängliga i SQL Server (som
DATE_BUCKET()
funktion).Se funktioner som stöds i Azure SQL Edge på Microsofts webbplats för en fullständig uppdelning.