SQL Server 2017版本已经可以在Linux系统上安装,但我在尝试.NET Core跨平台开发的时候使用的是Mac系统,所以这里记录了在Mac上安装SQL Server的过程。
最新的SQL Server没有专门为Mac系统准备安装包,但由于Mac系统上支持Docker,所以可以用一种变通的方式——在Docker内部安装Linux版本的SQL Server。
系统要求
因为我的Macbook Air型号比较老,硬件条件很一般,所以首先确定下是否满足安装SQL Server的条件。官方给出的配置如下:
内存 | 2 GB |
文件系统 | XFS or EXT4 (other file systems, such as BTRFS, are unsupported) |
磁盘空间 | 6 GB |
处理器速度 | 2 GHz |
处理器核数 | 2 cores |
处理器类型 | x64-compatible only |
要求不高,看来没有什么问题。
Docker应用程序
Mac版本的Docker可以通过下列地址下载:
Docker Community Edition for Mac
完成安装后还可以用docker -v
命令验证结果。
Docker镜像
有了Docker程序后,第一步先要做的事情是拉取SQL Server用于linux系统的镜像。
docker pull microsoft/mssql-server-linux:2017-latest
Docker容器
接着通过已拉取的镜像启动容器
docker run -d --name macsqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Passw1rd' -e 'MSSQL_PID=Developer' -p 1433:1433 microsoft/mssql-server-linux:2017-latest
在此命令中所用的参数都有实际用途:
-d 以daemon模式运行容器,即所启动的应用程序在后台运行
--name 为容器赋予名称
-e 'ACCEPT_EULA=Y' 在容器内部设定环境变量,用于确认接受终端用户许可协议—— end-user license agreement (EULA)
-e 'SA_PASSWORD=Passw1rd' 在容器内部设定sa账号的密码
-e 'MSSQL_PID=Developer' 也是一个环境变量,令SQL Server以开发者版本运行
-p 1433:1433 映射本地1433端口到容器内部SQL Server的1433端口
执行上述命令后,再执行docker ps -a
,可以查看已启动容器的状态。如果状态是Up的话,说明容器正常运行。
SQL Server客户端
由于SQL Server Management Studio没有被移植到其它系统上,所以要想在Mac系统以客户端的方式连接已安装的SQL Server,需要通过第三方工具。sql-cli便是其中一种用nodejs开发的客户端。
先是用npm方式安装sql-cli。
npm install -g sql-cli
完成安装后用以下命令进入(所输入的密码需匹配实际设定的):
mssql -u sa -p Passw1rd
若连接成功,再输入.databases
命令,就可以看到熟悉的SQL Server自带的四个数据库。
Visual Studio Code插件
使用VSC开发的一大好处是其包含丰富的插件。比如安装完mssql这个插件后,便可以利用VSC的便利,进行SQL程序的开发。
举个简单的例子:
⌘N,新建一个文件
⌘K M,将语言模式改为SQL
⇧⌘P,打开命令框,输入sql,选中MS SQL: Connect
,再选择Create Connection Profile
,然后输入一系列数据库连接配置。
如果最后在VSC的右下角看到的是类似下面的样子,说明已经成功连接数据库。
接着,在文件内输入SQL语句
use master
select * from spt_monitor
⇧⌘E,执行上述语句。可以在新的窗口中看到结果。
值得一提的是,在结果窗口内,还可以通过文件形式保存记录。