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,执行上述语句。可以在新的窗口中看到结果。

值得一提的是,在结果窗口内,还可以通过文件形式保存记录。

.NET Core开发日志——Linux版本的SQL Server的更多相关文章

  1. .NET Core开发日志——ADO.NET与SQL Server

    在.NET世界,如果想要对数据库进行操作,总少不了ADO.NET的身影.在.NET Core里同样离不开那些熟悉的类库与API.这里简略地介绍下如何通过ADO.NET对SQL Server进行不同的处 ...

  2. .NET Core开发日志——Entity Framework与PostgreSQL

    Entity Framework在.NET Core中被命名为Entity Framework Core.虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以Po ...

  3. Linux 上配置 SQL Server Always On Availability Group

    SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...

  4. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  5. .NET Core开发日志——RequestDelegate

    本文主要是对.NET Core开发日志--Middleware的补遗,但是会从看起来平平无奇的RequestDelegate开始叙述,所以以其作为标题,也是合情合理. RequestDelegate是 ...

  6. Linux 上的 SQL Server 2017 的安装指南

    一:介绍背景 微软在2016年 3 月首次对外宣布了 Linux 版的 SQL Server,并于2017年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会 ...

  7. 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs

    原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...

  8. 微软将向Linux用户提供SQL Server程序

    微软公司(Microsoft Corp., MSFT)将向Linux操作系统的用户提供旗下一项最赚钱的产品,这是该公司几年前无法想像的举措.这家软件巨头周一表示,将向免费的Linux Server提供 ...

  9. Linux上的SQL Server的起步

    我们知道,几个星期前,微软发布了在Linux上直接运行的SQL Server第一个公开CTP版本!因此,对我来说,是时候跨界在Linux上安装我的第一个SQL安装,这样的话,我就可以在Linux上折腾 ...

随机推荐

  1. java 除法运算只保留整数位的3种方式

      1.情景展示 根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析 可以使用3个函数实现 Math.floor(num)  只保留整数位 ...

  2. 【PMP】组织级项目管理(OPM)和战略

    OPM指为实现组织战略目标而整合项目组合.项目集和项目管理与组织驱动因素的框架. OPM旨在确保组织开展正确的项目并合适地分配关键资源. 组织项目管理 此图来源于PMBOK第六版

  3. C#获取网页的HTML码、下载网站图片 get post

    /// <summary> /// 获取网页的HTML码 /// </summary> /// <param name="url">链接地址&l ...

  4. 整死你个妖精,CDN西游捉妖记!

    CDN的降价潮和撕逼季已过,终于轮到小黑羊来做个科普啦. 这事儿,要从西游记取经开始…… [本图来自肖传湛个人网站:www.moko.cc/hiyoko] 1300年前,唐僧师徒取经要跋涉十万八千里, ...

  5. SSD卡对mongodb的影响

    结论 1:SSD卡显著改善磁盘IO,io占用在50%以下 2:SSD卡使mongodb性能稳定.在200并发,数据量是内存5倍的情况下仍然保证每秒1500次插入和4500次查询.     数据如下: ...

  6. WPF显示图片

    1.WPF显示图片内部一部分 <Rectangle Height="> <Rectangle.Fill > <ImageBrush ImageSource=&q ...

  7. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

    从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...

  8. layui表单验证

    layui表单元素的校验只需在元素上加入lay-verify,layui提供了以下值. required(必填项) phone(手机号) email(邮箱) url(网址) number(数字) da ...

  9. 【Unity】Protobuf的使用与常见问题

    Protobuf的使用流程 protobuf参考教程:https://www.jianshu.com/p/b135676dbe8d 手写.proto文件后,用CMD命令行运行protoc.exe编译器 ...

  10. java.util.concurrent介绍【转】

    java.util.concurrent介绍   java.util.concurrent 包含许多线程安全.测试良好.高性能的并发构建块.不客气地说,创建 java.util.concurrent ...