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. 大数模板 poj3982

    1. 这个模板不是自己写的,转载的别人转载的,还没学完c++的我,想写也没有那能力. 这个模板我用在了POJ的一道题上,传送门--POJ3982 一般大数的题,都可用这个模板解决,仅仅须要改动主函数就 ...

  2. golang ---tcmalloc浅析

    总体结构 在tcmalloc内存管理的体系之中,一共有三个层次:ThreadCache.CentralCache.PageHeap,如上图所示.分配内存和释放内存的时候都是按从前到后的顺序,在各个层次 ...

  3. Keepalived源码安装

    1.编译.安装 # tar -xvf keepalived-1.3.9.tar.gz # cd keepalived-1.3.9/ # ./configure -prefix=/usr/local/k ...

  4. C#:注册组件 (cmd)

    public class ComRegistor { public static string classID = "CLSID\\{479A1AAC-C148-40BB-9868-A977 ...

  5. Spark初识

    一.简介 1.什么是Spark 官网地址:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎. 从右侧最后一条新闻看,Spark也用于AI人 ...

  6. [转]Java NIO 系列教程

    Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...

  7. SNF开发平台WinForm-审核流使用方法样例

    一.效果如下: 二.如何实现 1.程序的数据表设计规范,参考<09.SNF-C#编程规范V1.5.docx>文件. 2.程序操作程序 2.1.在程序页面拖拽控件 2.2.程序的Load事件 ...

  8. 5 Protocols For Event-Driven API Architectures

    The internet is a system of communication, and as such, the relationship between client and server, ...

  9. Android开发(十四)——SimpleAdapter与自定义控件

    ListView中可以使用SimpleAdapter进行数据与视图的绑定,但都是对已有的系统控件的绑定,如果自定义空间直接使用SimpleAdapter绑定,则会报错. 如,使用CircleImage ...

  10. Android 自动化测试——Monkey测试

    Android自带了很多方便的测试工具和方法,包括我们常用的单元测试.Robotium测试.Monkey测试.MonkeyRunner测试.senevent模拟等.这些方法对于我们编写高质量的APP十 ...