本文探讨了Windows Subsystem for Linux(WSL)在Windows操作系统上运行Linux操作系统并在Linux上配置SQL Server。
简介
Windows Subsystem for Linux(WSL)是开发人员直接在Windows 10或Windows Server 2019系统上运行Linux的一种方式。微软开发了一个与Linux兼容的内核接口,用于运行Ubuntu、RedHat、SUSE等Linux。假设你有一台Windows Server 2019服务器,你想在上面配置一个Linux上的SQL Server。以前,你需要有一个单独的虚拟机来在Linux操作系统上运行SQL Server。现在,你可以利用WSL实现这一目的,快速部署。
- 你可以从微软商店下载各种Linux发行版
- 它允许你运行Bash shell脚本,Linux的JavaScript、Python、Ruby、C/C++命令
- 你可以使用Linux发行版的软件包管理器安装额外的软件
- 你可以在Windows上使用vim、emacs或tmux等工具。
Linux上的SQL Server的Windows Subsystem for Linux(WSL 2)介绍
Windows subsystem for Linux(WSL) 2提高了Windows操作系统上Linux的文件系统性能和系统调用能力。在下面这张来自微软文档的截图中,你可以看到WSL1、WSL2的对比。

本文在Oracle VirtualBox机器上实现了以下内容。
- 使用VHD文件部署一个Windows Server 2019虚拟机
- 为Linux配置Windows子系统
- 在Linux操作系统上安装SQL Server on Linux ( 2019版)
- 连接并查询SQL数据库
使用VHD文件部署Windows Server 2019虚拟机
对于这一步,你需要在你的系统上安装Oracle VirtualBox应用程序。你可以导航到网址www.virtualbox.org/[,并](www.virtualbox.org/)下载最新版本。

它的安装是直截了当的。一旦Oracle VM VirtualBox安装完毕,导航到微软评估中心的Try Windows Server 2019,你会得到以下页面,下载Windows Server 2019评估版。这里你得到三个选项。
- Azure:要在Azure基础设施上配置Windows Server 2019
- ISO:下载Windows Server 2019的ISO文件
- VHD:下载用于快速部署的虚拟硬盘(VHD)文件
- 注意:你可以使用Windows Server2019评估版180天,熟悉其功能
本文使用VHD文件进行快速部署。点击VHD(虚拟硬盘)并下载该文件。其大小约为8GB。
一旦Windows Server 2019 VHD文件被下载,启动Oracle VM VirtualBox Manager并创建新的。
在创建虚拟机时,输入以下信息。
- 虚拟机名称
- 虚拟机文件夹
- 内存(RAM)大小
- 硬盘。在硬盘中,选择选项 - 使用现有的虚拟硬盘文件。在这里,选择你从微软下载的VHD文件。

点击 "创建 "并启动虚拟机。它用VHD文件中的配置准备好虚拟机。

在准备的过程中,它要求提供键盘布局的信息。此外,接受微软的软件许可条款。

在自定义设置页面,输入内置管理员账户的密码。

点击完成,你的Windows Server 2019服务器就可以进行部署了。
为Linux上的SQL Server启用Windows Subsystem for Linux
为了在Windows Server 2019上运行Linux发行版,我们需要从Windows功能中启用 "Windows subsystems for Linux"。你可以从Windows GUI或使用Windows PowerShell命令来启用它。
要从图形界面启用该功能,启动服务器管理器 -> 管理 -> 添加角色和功能,并勾选Windows subsystems for Linux,如下图所示。
点击 "下一步",按照功能向导的提示,在图形界面模式下安装WSL。或者,在管理员模式下打开Windows PowerShell,运行以下命令。
>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
它提示你在重新启动计算机之前输入Y。这是一个快速启用WSL功能和配置虚拟机重启的过程。
从微软商店下载一个Linux发行版
你可以从微软商店下载以下Linux发行版。要从商店下载,请搜索特定的发行版,并点击安装来下载和安装它。
或者,点击你选择的发行版,在虚拟机上下载它。
你也可以从Windows PowerShell下载Linux发行版。下面的查询使用Windows PowerShell下载Ubuntu 16.04。它使用 Invoke-WebRequest 从指定的 URL 下载软件库。
> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
一旦Ubuntu发行完成,使用expand-archive命令提取它。
>Rename-Item .\Ubuntu.appx .\Ubuntu.zip
>Expand-Archive .\Ubuntu.zip .\Ubuntu

现在,浏览到Ubuntu目录并检查可执行文件的名称。对于Ubuntu 16.04,文件名是ubuntu1604.exe。

执行Ubuntu1604.exe,它开始在Windows Server 2019上安装Ubuntu 16.04。使用WSL在Windows Server 2019上安装Ubuntu需要几分钟时间。

一旦你安装了Linux发行版,它会提示你指定发行版默认用户的凭证。这个账户将获得sudo(超级用户做)权限,以执行管理活动。如果你重置了Linux发行版的WSL,你也需要重置这个账户。你可以为Unix创建一个与本地Windows用户不同的用户。例如,我在演示中把sqladmin用户作为Windows管理员,把linuxadmin作为Unix管理员。
一旦你输入了Unix的用户名和密码,它就会配置用户并自动登录到Linux发行版。
例如,注意提示 - Linuxadmin@WIN-A96LOA99PE6。这里,Linuxadmin是用户,WIN- A96LOA99PE6是主机名。
现在,你可以运行Linux命令。例如,运行ls-la来检查目录。

在Windows子系统Linux上安装SQL Server (2019)
我们在上一步中配置了一个Windows Server 2019虚拟机,并为Windows Subsystem for Linux(WSL)配置了它。现在,我们将在Ubuntu操作系统上安装SQL Server。
第1步:从微软软件包商店导入公共资源库密钥
在管理Windows PowerShell中运行以下命令。
> wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –
第2步:注册Microsoft SQL Server 2019 Ubuntu资源库
在这一步,使用add-apt-repository为Linux上的Microsoft SQL Server 2019注册存储库。
> sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list)"
第3步:安装SQL Server
首先,使用以下命令执行apt资源库更新。
> sudo apt-get update
使用apt-get命令安装SQL Server。
>sudo apt-get install -y mssql-server
最后,你会得到一个安装运行mssql-conf工具的提示,以执行微软SQL Server的完整设置。

SQL Server需要以下输入来完成SQL Server的配置。
- SQL Server版本
- 接受许可条款和条件
- 指定SQL Server管理员密码
> sudo /opt/mssql/bin/mssql-conf setup

提供输入,你的SQL服务器在Windows Server 2019的Ubuntu Linux上已经准备就绪。

你可以使用SQL Server Management Studio、Azure Data Studio或SQLCMD工具来连接SQL Server,创建数据库并执行查询。
如果你运行的是Windows 10,你可以按照[微软的文档],使用Window的子系统为Linux配置SQL Server。
为Linux上的SQL Server的Windows子系统重置Linux管理员密码
假设你想改变Windows Server 2019子系统的Linux管理员。为此,在管理Windows PowerShell中运行passwd命令,指定一个当前和新的密码。

总结
在这篇文章中,我们了解了利用Windows子系统的Linux,可以在Windows操作系统上配置Linux。你不需要一个单独的虚拟机来运行Linux命令和工具。你可以在Linux子系统上运行SQL和NoSQL数据库MySQL、PostgreSQL、SQLite、MongoDB和Redis、Microsoft SQL Server。









