По-рано обясних как да инсталирате SQL Server на Mac с помощта на изображението на SQL Server за Linux Docker.
Оттогава Apple пусна своя M1 чип, който използва ARM архитектура. Това може да причини проблем при опит за инсталиране на SQL Server. Проблемът е, че към момента на писане SQL Server не се поддържа от ARM архитектурата.
За щастие има алтернатива.
Изображението на контейнера за Azure SQL Edge може да бъде инсталирано на M1 Mac. Следователно можем да използваме това изображение вместо изображението на SQL Server.
Azure SQL Edge е оптимизиран двигател за релационна база данни, насочен към внедряване на IoT и IoT Edge. Той е изграден върху най-новите версии на SQL Server Database Engine, така че можете да използвате T-SQL код точно както бихте направили, когато използвате SQL Server. Можете също така да отправяте заявки към Azure SQL Edge, които бихте използвали със SQL Server (като SSMS, Azure Data Studio и т.н.).
В тази статия инсталирам изданието за разработчици на Azure SQL Edge на Mac с чипа M1.
Инсталирайте Docker
Виждайки, че инсталираме SQL Edge чрез Docker контейнер, трябва да имаме инсталиран Docker.
Ако все още нямате Docker, изтеглете го и го инсталирайте, както следва:
- Изтеглете Docker от уебсайта на Docker. Не забравяйте да изтеглите този за M1 Mac (бутонът се казваше
Mac with Apple Chip
когато го изтеглих). - След като бъде изтеглен, отворете
.dmg
файл и плъзнете иконата Docker.app във вашата папка Applications, както е указано. - Стартирайте Docker по същия начин, по който бихте стартирали всяко друго приложение (напр. чрез папката Applications, Launchpad и т.н.). Когато отворите Docker, може да бъдете подканени за вашата парола. Продължете и предоставете паролата си, тъй като Docker се нуждае от това, за да работи.
Инсталирайте Azure SQL Edge
Сега, когато Docker е инсталиран, можем да продължим и да инсталираме Azure SQL Edge. Както споменахме, това използва SQL Server Database Engine и следователно можем да го използваме, за да изпълняваме T-SQL заявки и т.н., сякаш отправяме заявки към SQL Server.
Отворете прозорец на терминала и изпълнете следната команда:
docker pull mcr.microsoft.com/azure-sql-edge
Това изтегля/изтегля изображението на контейнера на вашата локална машина.
Като алтернатива можете да проверите опциите на контейнера на уебсайта на Docker, ако предпочитате.
След като изтеглянето приключи, изпълнете следната команда, за да стартирате копие на изображението на Docker, което току-що изтеглите:
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
Не забравяйте да промените bigStrongPwd
до силна парола по ваш избор. Можете също да промените стойността на --name
параметър, ако желаете.
По подразбиране контейнерът се изпълнява с изданието за разработчици. Можете да стартирате Premium Edition, като добавите -e 'MSSQL_PID=Premium'
.
Проверете Docker контейнера
Можем да използваме следната команда, за да проверим дали контейнерът работи и работи:
docker ps
Резултат:
a190dd199b17 mcr.microsoft.com/azure-sql-edge "/opt/mssql/bin/perm..." преди 10 секунди Нагоре 9 секунди 1401/tcp, 0.0.0.0:1433->1433/tcp sqle>Това ми показва, че контейнерът всъщност е готов и работи.
Ако по някаква причина контейнерът ви не работи и не работи, опитайте следната команда:
docker start sqledge
Заменете
sqledge
с името на вашия контейнер.Когато контейнерът е готов и работи, вече можем да продължим и да се свържем със SQL Edge.
Свържете се със SQL Edge
Вече можете да се свържете с вашата инсталация на Azure SQL Edge, като използвате предоставените подробности при стартиране на изображението на Docker.
Ето екранна снимка на свързване с Azure SQL Edge чрез Azure Data Studio:
Ето как да инсталирате Azure Data Studio на Mac.
Microsoft заявява, че Azure Data Studio „понастоящем не поддържа ARM архитектурата“, но нямах проблем с инсталирането му на моя M1 Mac (т.е. с ARM архитектура).
Изпълнете SQL заявки
След като се свържете към SQL Edge, можете да създавате бази данни, да изпълнявате T-SQL заявки и т.н. (T-SQL е разширение на SQL Server към SQL).
Вижте моя урок за SQL, за да се запознаете с изпълнението на SQL заявки.
Поддържани функции в SQL Edge
Трябва да спомена, че някои функции на SQL Server не се поддържат в SQL Edge. Azure SQL Edge поддържа подмножество от функциите, поддържани от SQL Server 2019 на Linux.
Въпреки това SQL Edge има някои функции, които не са налични в SQL Server (като
DATE_BUCKET()
функция).Вижте Поддържани функции на Azure SQL Edge на уебсайта на Microsoft за пълна разбивка.