ARM Win11 如何安装 SQL Server?

最近买了 Mac Studio,虽然不是 M1 Ultra,但是内存是 64G,为的就是希望通过 PD 安装 Win11不卡。
ARM 架构的 Mac 当然也只能安装 ARM 的 Windows,好在 Win11 有 ARM 版本。安装后,果然在强大的 M1 Max下,Windows 使用起来很流畅。虽然 Win11 能通过套娃的形式,提供一个虚拟环境供x86、x64 应用运行,但今天发现没法安装 SQL Server,这可是微软自家的应用啊,竟然还不兼容。SQL Server 2022 马上就要发布了,只能稍微带点期待了。

然后再看 ARM Win11 和隔壁家的 ARM macOS,对比 ARM 版本的应用,Win11 又输了😂。
而且 Win11 上我仅仅安装了几个应用,而 macOS 已经安装了很多应用了,可见苹果的号召力真大。

既然 Win11 ARM 上安装不了 SQL Server,那么该怎么办呢?

ARM Windows 不能安装 SQL Server 2019

微软官方似乎没有明确说明 SQL Server 2019 能否安装在 ARM Windows 上。

使用 Docker 安装

SQL Server 下载 | Microsoft 官网上可以看到给出了三种环境的安装方式:

分别是 Windows、Linux、Docker,那么对于使用 Mac 的我,使用 Docker 来运行 SQL Server 2019 容器镜像也是可行的啊。

Microsoft SQL Server

其实我在去年就通过 Docker 在 Intel Mac 上安装过,还写一篇文章 如何在macOS上安装SQL Server ? - 干志雄的博客。由于我目前使用的是 M1 Mac,于是我便按照官方文档 Docker:为 Linux 上的 SQL Server 安装容器 - SQL Server | Microsoft Docs 进行操作,但是执行 docker run ... 命令却报错了。

1
2
3
4
5
6
$ sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Passw0rd" \             
-p 1433:1433 --name sqlserver --hostname sqlserver \
-d mcr.microsoft.com/mssql/server:2019-latest
Password:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
13e4f17b0a10b8bf8cd1149f7d47afdd508d1c603e5227928a61bdef219ead2c

我在 GitHub Issues 页面 不适用于 Mac M1 · 问题 #734 · microsoft/mssql-docker 找到了答案。
原来 Microsoft SQL Server 镜像不支持 ARM64 / Apple Silicon / M1 。

其实在这里 Microsoft SQL Server by Microsoft | Docker Hub 也可以看到 SQL Server 镜像只支持 AMD64,注意 AMD64 是兼容 X86 的。

Azure SQL Edge

还好 Azure SQL Edge by Microsoft | Docker Hub 镜像可以安装在 M1 Mac 上。因此,我们可以使用该映像而不是 SQL Server 镜像。

SQL Edge | Microsoft Azure 是一个优化的关系数据库引擎,适用于 IoT 和 IoT Edge 部署。它基于最新版本的 SQL Server 数据库引擎构建,因此您可以像使用 SQL Server 一样使用 T-SQL 代码。您还可以使用与 SQL Server 一起使用的相同工具来查询 Azure SQL Edge(例如 SSMS、Azure Data Studio 等)。

Azure SQL Edge是 SQL Server 的限量版,功能较少,因此运行起来“更轻”。另一方面,还有一些额外的功能,例如内置数据库人工智能和数据流功能。这使得 Azure SQL Server Edge 版本成为物联网的首选解决方案。随着更多的本地处理和分析,通过企业基础设施传输的数据更少。它完全符合微软的物联网愿景,越来越多的数据将在网络的边缘(即边界)进行处理。

安装步骤直接看官方文档 通过 Docker 部署 Azure SQL Edge - Azure SQL Edge | Microsoft Docs,我没必要复述了。

不支持的功能

SQL Edge 不支持某些 SQL Server 功能。Azure SQL Edge 支持 Linux 上支持的 SQL Server 2019 功能的子集。也就是说,SQL Edge 确实有一些 SQL Server 中不可用的功能(例如DATE_BUCKET()函数)。

有关完整细分,请参阅 Azure SQL Edge 支持的功能 | Microsoft Docs

ARM Win11 如何安装 SQL Server?

https://ganzhixiong.com/p/8ffb11f7/

Author

干志雄

Posted on

2022-04-15

Updated on

2022-04-15

Licensed under

Comments