手把手用WSL在Windows上搭一个Linux开发环境(含MySQL实战)
这是笔者过去写的一篇文章,整理后重新分享给大家。
因为个人使用Windows系统进行开发,很多涉及Linux环境的部署配置,以往要么用个人云服务器,要么用虚拟机,过程都比较繁琐。当时受朋友安利,了解到Windows下的Linux子系统(WSL),查看微软官方介绍可知它有如下几个优势:
- 直接嵌入
Windows系统,无需像双系统或者虚拟机那样配置繁琐。 - 结合
VS Code实现Windows系统开发,Linux子系统部署调试。 Linux子系统与Windows运行环境相互隔离,但两者的文件系统可以互相访问。
通过WSL2可以快速打造出在本地Linux开发的环境,实现本地开发和调试Linux应用,所以这篇文章笔者就以自己的win 10系统来演示一下WSL的环境配置与安装。
SharkChili · 禅与计算机程序设计的艺术
开源贡献
- mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis
关注公众号,回复 【加群】 加入技术社群
# 安装并配置 WSL
# 安装WSL
首先我们需要以管理员的身份打开powershell键入WSL安装指令进行WSL安装:
wsl --install
静待一段时间等待安装完成:

注意:默认情况下安装的都是Ubuntu系统,如果你想安装其他类型的Linux发行版,可以先通过wsl --list --online查看当前支持安装的发行版列表。
PS C:\Users\shark-chili>
以下是可安装的有效分发的列表。
使默认分发用 “*” 表示。
使用 'wsl --install -d <Distro>' 安装。
NAME FRIENDLY NAME
* Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
然后通过wsl --install -d <Distribution Name>指令完成安装,例如我们要安装Debian,则对应的安装指令为wsl --install -d Debian。
# 重启使之生效
完成安装后,终端提示:请求的操作成功。直到重新启动系统前更改将不会生效。 所以我们需要重启一下计算机,随后就能在开始菜单看到Ubuntu,将其打开。由于是初次启动,系统需要解压发行版文件并完成首次初始化,会等待一小段时间。

# 配置账号密码
初次使用需要设置一下账号和密码,这里我们按照个人习惯设置一下即可:

# 使用Linux子系统
后续我们就可以在终端界面操作这个Linux子系统了:

这里也顺便安利一下MobaXterm这款多功能远程终端工具,笔者发现在完成 WSL 安装之后,它能自动识别到这个子系统(对应 MobaXterm 的 WSL 会话类型),点击连接即可直接操作Ubuntu子系统:

# 安装MySQL
# 更新软件包索引
因为MySQL是个人比较常用的数据库,这里就以MySQL为例演示一下数据库的安装。在安装前,先更新一下Ubuntu的软件包索引(即刷新可安装软件的版本清单,确保装到较新版本):
sudo apt update
# 安装数据库服务端
然后就可以键入install命令安装MySQL了:
sudo apt install mysql-server
# 验证安装结果
等待一段时间之后我们可键入查看版本号的命令查看MySQL是否安装成功:
mysql --version
随后我们再通过下述指令检查一下MySQL的运行状态,如果正处于运行中我们就可以开始后续的配置工作了:
systemctl status mysql
# 初始化 root 密码
首先键入下述指令进入 MySQL 命令行客户端:
sudo mysql
接着切换到 mysql 库:
use mysql
然后执行如下语句,将root账户的认证方式改为mysql_native_password并设置新密码(这样便于后续用客户端工具远程连接):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 连接测试
WSL2 实际运行在一个轻量级虚拟机里,有自己独立的虚拟网卡(通常是 172.x 网段)。微软为它做了 localhost 转发。
这使得客户端通过 localhost 请求 WSL 的 MySQL 服务端时,Windows 侧由一个中转进程监听该请求,再把它转发到 172.x 网段的 Ubuntu 虚拟机中。所以 WSL 里监听的端口会自动「出现」在 Windows 的 localhost 上,你无需关心那个 172.x 的内网 IP,直接连 localhost 即可:

所以,我们可直接在Windows上用客户端工具填写localhost(或127.0.0.1)即可连接到 WSL 里的MySQL,如下图,可以看到正确的输入账号和密码连接成功了:

# 修改端口号
需要注意的是,基于上面讲的 localhost 转发机制,WSL 里监听的端口会映射到 Windows 的 localhost。如果你的 Windows 主机本身也装了 MySQL(默认同样占用 3306),两者就会在 localhost:3306 上冲突。因此建议修改一下 WSL 里 MySQL 的端口号:
sudo vim /etc/mysql/my.cnf
2
在该文件中追加如下内容:
[mysqld]
port=3307
2
3
完成后重启 MySQL:
sudo service mysql restart
后续我们就可以通过本地的3307端口号访问MySQL数据库了。
# 小结
本文围绕「在 Windows 上打造个人 Linux 子系统」这一主题,完整走了一遍从环境搭建到实际使用的流程,主要包括:
- WSL 的安装与配置:通过
wsl --install一键安装,介绍了如何查看并选择其他发行版,以及重启生效、初始化账号密码等首次配置步骤。 - 终端工具介绍:顺带安利了
MobaXterm,它能在安装 WSL 后自动识别子系统并一键连接。 - MySQL 的安装与本地使用:以
MySQL为例,演示了在子系统中安装数据库、初始化root密码、修改端口,并基于 WSL2 的 localhost 转发机制,通过 Windows 的localhost完成本地连接访问。
借助 WSL,开发者无需双系统或虚拟机,就能在 Windows 上获得一个开箱即用的 Linux 环境,简化日常的开发与部署调试工作,希望这篇文章对你有帮助。
SharkChili · 禅与计算机程序设计的艺术
开源贡献
- mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis
关注公众号,回复 【加群】 加入技术社群
# 参考
设置 WSL 开发环境:https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment (opens new window)
开始使用适用于 Linux 的 Windows 子系统上的数据库:https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-database (opens new window)
- 01
- 详解AI时代下生产力最佳实践—Iterm2+zsh06-12
- 02
- 打造高效mac终端:oh-my-zsh与插件配置06-11
- 03
- Linux与macOS下Git安装及SSH配置教程06-10