如何在苹果M1芯片Mac上搭建本地SQL Server环境
在 M1 Mac 上设置本地的 SQL Server 可能会有难度,因为 SQL Server 主要针对 Windows 设计,并且不支持 macOS。但是,使用 Docker 和 ARM 兼容的镜像,你可以在 M1 Mac 上运行 SQL Server。本指南将带你一步步完成在 M1 Mac 上运行本地 SQL Server 的步骤。
为什么要在M1 Mac上用SQL Server?- 跨平台开发:在 macOS 上本地开发和测试需要 SQL Server 的应用程序。
- 学习和实验:无需专用的 Windows 系统即可练习 SQL Server 的命令和配置。
- 无缝工作流:避免切换操作系统或依赖外部服务器。
Docker 在 macOS 上运行 SQL Server 时非常必要,它允许在容器中运行 SQL Server。
下载并安装 Docker:
- 访问Docker的官方网站并下载适用于macOS的Docker Desktop。
- 按照安装说明进行安装,并确保Docker已启动。
启用 Apple 芯片兼容性
- Docker Desktop 支持通过 Rosetta 2 模拟的 M1 芯片。请确保已安装 Rosetta:
softwareupdate --install-rosetta
# 安装Rosetta的命令
2. 下载适用于 ARM 的 SQL Server 镜像文件
微软为SQL Server提供了官方的Docker镜像,但该镜像并未针对ARM处理器(如M1芯片这样的)进行优化。请使用社区维护或实验性的针对ARM架构的镜像。
拉 Docker 镜像,比如 SQL Server 的:
运行以下命令来拉取容器镜像:
docker pull mcr.microsoft.com/azure-sql-edge
拉取完成后,你可以运行容器来测试 Azure SQL Edge 的功能。```
**为什么用Azure SQL Edge?**
* Azure SQL Edge 是为边缘计算优化的 SQL Server 轻量级版本,并支持 ARM 架构。
## 3\. 运行 SQL Server 的容器实例
使用Docker启动一个SQL Server容器实例:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=YourStrongPassword!" \
-p 1433:1433 --name sqlserver \
-d mcr.microsoft.com/azure-sql-edge
**解释**:
* `-e "ACCEPT_EULA=Y"`: 接受 SQL Server 许可协议的条款。
* `-e "MSSQL_SA_PASSWORD=YourStrongPassword!"`:为 `sa`(SA)用户设置密码。
* `-p 1433:1433`:将容器的 1433 端口映射到本地的 1433 端口上。
* `--name sqlserver`:将容器命名为 `sqlserver`。
* `-d`:以分离模式启动容器。
## [顶尖的机器学习课程,助你提升职业生涯:机器学习已成为科技专家的关键技能。有许多不同的机器学习课程可供选择等……www.goexam.today](https://www.goexam.today/top-machine-learning-courses-to-boost-your-career2/?source=post_page-----88d0ff0fed4c---------------------------------------)
## 4 验证 SQL Server 实例:
**查看正在运行的容器**
docker ps # 查看正在运行的容器
在列表中找到 `sqlserver` 容器,确保它正在运行。
**连接到SQL Server数据库**:使用像Azure Data Studio、DBeaver或SQL Server Management Studio (SSMS)等SQL客户端工具从另一台机器上连接。
**连接信息:**
* **服务器** : `localhost` 或 `127.0.0.1` (即本机地址)
* **端口** : `1433`
* **用户名** : `sa`
* **密码** : `你的强密码!`
## 5\. 访问本地的 SQL Server
你可以使用如 `sqlcmd` 這類的命令行工具,或圖形界面工具來進行本地訪問。
**选项 1:使用 `sqlcmd`**:使用 Docker 来安装 `sqlcmd`:
docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P YourStrongPassword! (-it 参数表示交互模式,-P 后面的 'YourStrongPassword!' 请替换为实际的强密码)
直接执行SQL命令:
SELECT @@VERSION;
这行代码用于查询数据库版本信息。
下面这个选项:使用Azure Data Studio:
1. 从[Microsoft网站](https://azure.microsoft.com/en-us/products/data-studio/)下载Azure Data Studio。
2. 根据上述连接信息连接到SQL Server实例。
# 故障排除小贴士
**SQL Server 容器实例启动失败:**
* 请确保 Docker 的资源(内存和 CPU)足够。在 Docker 的设置中,至少分配 2GB 内存。
**端口冲突问题:**
* 如果端口 `1433` 被占用,请使用其他本地端口
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=YourStrongPassword!" \ -p 1434:1433 --name sqlserver \ -d mcr.microsoft.com/azure-sql-edge
**无法连接到SQL服务器:**
* 确保容器已经启动:`docker ps`。
* 使用 `telnet` 查看 `localhost:1433` 是否可以连接:
运行此命令来连接到本地主机的1433端口
telnet localhost 1433
**性能上的问题:一些性能问题**:
* Azure SQL Edge 专为轻量级场景设计。对于重型工作负载,建议使用远程 SQL Server 实例。
# 最佳做法
**强密码**:
(建议包含复杂字符、数字和大小写字母)
* 为 `sa` 用户设置一个强密码以防未经授权访问。
**数据持久性**:
要使数据在容器生命周期结束后仍然持久化,可以挂载一个卷。
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=YourStrongPassword!" \ -p 1433:1433 --name sqlserver \ -v sqlvolume:/var/opt/mssql \ -d mcr.microsoft.com/azure-sql-edge #这是一个用于运行数据库容器的Docker命令
**定期备份**:
* 确保经常备份你的数据,特别是在使用容器时。
**查看资源使用情况** :
* 关注密切监视 Docker 的资源消耗,以确保它在您的 M1 Mac 上运行顺畅。
或者去掉星号,更自然:
关注密切监视 Docker 的资源消耗,以确保它在您的 M1 Mac 上运行顺畅。
## [热门的机器学习课程,提升您的职业发展机器学习已经成为科技从业者的必备技能。有许多机器学习课程可供选择。www.goexam.today](https://www.goexam.today/top-machine-learning-courses-to-boost-your-career2/?source=post_page-----88d0ff0fed4c---------------------------------------)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦