How to fix failed SQL Server 2019 Developer Edition Setup on Windows 11 VM running on Mac with M2 Chip

Lou Parker 0 Reputation points
2024-04-05T00:14:55.1733333+00:00

Installed SQL Server 2019 Developer Edition on Windows 11 VM running on MAC with M2 Pro processor. Installation gets all the way to the end and then fails with the following error message:

"Unable to install SQL Server (setup.exe). Exit code (Decimal): -2068052294 Error description: There is a problem with this Windows Installer package. A program run as part of the setup."

SQL Server Other
{count} votes

2 answers

Sort by: Most helpful
  1. Erland Sommarskog 121.4K Reputation points MVP Volunteer Moderator
    2024-04-05T21:17:25.79+00:00

    Running SQL Server on an M2 chip is a rough road, since SQL Server does not support ARM.

    Here are some links I've gathered about running SQL Server on Mac (I don't use Mac myself):

    https://learn.microsoft.com/en-us/answers/questions/1298316/sql-server-2022-database-engine-services-failde?comment=answer-1266245&page=2#answers (Read Randolph West's posts and the article they link to.)

    https://www.youtube.com/watch?v=9c7Ti2OcLZg

    0 comments No comments

  2. Bruce (SqlWork.com) 77,686 Reputation points Volunteer Moderator
    2024-04-06T20:53:00.43+00:00

    as there is no arm64 release of sqlserver even for the arm64 surface. so you can not install sqlserver or sqlserver express in the vm.

    instead you will need to install docker on your Mac and pull a sqlserver (amd64) docker image. docker on Mac now supports amd64 images via rosetta emulation.

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

    https://learn.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&tabs=cli&pivots=cs1-bash

    you should create an external mount for your database file, so you can update without losing data. on Mac, sqlserver does not support local mounts. you need to create a docker volume, and mount the volume. see:

    https://docs.docker.com/storage/volumes/

    instead of localdb (sqlexpress), use SQLite or your hosted docker image.

    note: in the past MS had an arm64 version of azure sql edge docker image (mcr.microsoft.com/azure-sql-edge). it is basically sqlserver 2019. if you google you can get a copy.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.