本分步指南将帮助你开始将 WSL 中的项目连接到数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。
先决条件
- 运行 Windows 11 或 Windows 10,更新至版本号 2004,编译号 19041或更高。
- 使用 WSL 安装 Linux 分发版,并创建 Linux 用户名和密码。
数据库系统之间的差异
数据库系统的一些 常用选项 包括:
- MySQL (SQL)
- PostgreSQL (SQL)
- Microsoft SQL Server (SQL )
- SQLite (SQL)
- MongoDB (NoSQL)
- Redis (NoSQL)
MySQL 是一个开源 SQL 关系数据库,将数据组织成一个或多个表,其中数据类型可能相互关联。 它可垂直缩放,这意味着一台最终计算机将为你完成工作。 它目前是四个数据库系统中最广泛使用的。
PostgreSQL(有时称为 Postgres )也是一个开源 SQL 关系数据库,强调扩展性和标准符合性。 它现在也可以处理 JSON,但通常更适合结构化数据、垂直缩放和符合 ACID 的需求,例如电子商务和金融交易。
Microsoft SQL Server 包括 Windows 上的 SQL Server、Linux 上的 SQL Server 和 Azure 上的 SQL。 这些也是在服务器上设置的关系数据库管理系统,其主要功能是存储和检索软件应用程序请求的数据。
SQLite 是一个开源自包含的、基于文件的“无服务器”数据库,以其可移植性、可靠性和高性能而闻名,即使在低内存环境中也是如此。
MongoDB 是一个开源 NoSQL 文档数据库,旨在处理 JSON 并存储无架构数据。 它可水平缩放,这意味着多个较小的计算机将为你完成工作。 它非常适合实现灵活性,处理非结构化数据,并缓存实时分析。
Redis 是一种开源 NoSQL 内存中数据存储。 它使用键值对进行存储而不是文档。
安装 MySQL
若要在 WSL 上运行的 Linux 分发版上安装 MySQL,只需按照 MySQL 文档中的 Linux 上安装 MySQL 说明进行作。可能需要首先在配置文件中wsl.conf
。
使用 Ubuntu 分发的示例:
- 打开 Ubuntu 命令行并更新可用的包:
sudo apt update
- 更新包后,使用以下命令安装 MySQL:
sudo apt install mysql-server
- 确认安装并获取版本号:
mysql --version
- 启动 MySQL 服务器/检查状态:
systemctl status mysql
- 若要打开 MySQL 提示符,请输入:
sudo mysql
- 若要查看可用的数据库,请在 MySQL 提示符下输入:
SHOW DATABASES;
- 若要创建新数据库,请输入:
CREATE DATABASE database_name;
- 若要删除数据库,请输入:
DROP DATABASE database_name;
有关使用 MySQL 数据库的详细信息,请参阅 MySQL 文档。
若要在 VS Code 中使用 MySQL 数据库,请尝试 MySQL 扩展。
可能还需要运行包含的安全脚本。 这会更改远程根登录和示例用户等一些不太安全的默认选项。 此脚本还包括更改 MySQL 根用户密码的步骤。 运行安全脚本:
- 启动 MySQL 服务器:
sudo service mysql start
- 启动安全脚本提示:
sudo mysql_secure_installation
- 第一个提示将询问是否要设置 VALIDATE PASSWORD COMPONENT,该组件可用于测试 MySQL 密码强度。 如果要设置一些简单密码,则不应设置此组件。
- 然后,将为 MySQL 根用户设置/更改密码,决定是否删除匿名用户,决定是否允许根用户在本地和远程登录,决定是否删除测试数据库,最后决定是否立即重新加载特权表。
安装 PostgreSQL
在 WSL 上安装 PostgreSQL(即Ubuntu):
- 打开 WSL 终端(即Ubuntu)。
- 更新 Ubuntu 包:
sudo apt update
- 更新包后,请安装 PostgreSQL(以及具有一些有用实用工具的 -contrib 包),其中包含:
sudo apt install postgresql postgresql-contrib
- 确认安装并获取版本号:
psql --version
安装 PostgreSQL 后,需要知道 3 个命令:
-
sudo service postgresql status
用于检查数据库的状态。 -
sudo service postgresql start
以开始运行数据库。 -
sudo service postgresql stop
停止运行数据库。
默认管理员用户 postgres
需要分配密码才能连接到数据库。 设置密码:
- 输入命令:
sudo passwd postgres
- 系统会提示输入新密码。
- 关闭并重新打开终端。
若要使用 psql shell 运行 PostgreSQL,请执行以下作:
- 启动 postgres 服务:
sudo service postgresql start
- 连接到 postgres 服务并打开 psql shell:
sudo -u postgres psql
成功输入 psql shell 后,会看到命令行更改如下所示: postgres=#
注释
或者,可以通过使用以下命令切换到 postgres 用户 su - postgres
,然后输入以下命令 psql
来打开 psql shell。
若要退出 postgres=# Enter: \q
或使用快捷键:Ctrl+D
若要查看 PostgreSQL 安装上已创建的用户帐户,请使用 WSL 终端中的命令:psql --command="\du"
...或如果已打开 psql shell 仅使用 \du
。 此命令将显示列:帐户用户名、角色属性列表和角色组的成员。 若要退出命令行,请输入: q
有关使用 PostgreSQL 数据库的详细信息,请参阅 PostgreSQL 文档。
若要在 VS Code 中使用 PostgreSQL 数据库,请尝试 PostgreSQL 扩展。
安装 MongoDB
若要安装 MongoDB,请参阅 Mongodb 文档: 在 Linux 上安装 MongoDB 社区版
安装 MongoDB 可能需要略有不同的步骤,具体取决于用于安装的 Linux 分发版。 另请注意,MongoDB 安装可能因要安装的版本 #而异。 使用 MongoDB 文档左上角的版本下拉列表选择与目标相符的版本。 最后,可能需要在与 WSL 一起使用的 Linux 分发版配置文件中wsl.conf
。 该 systemctl
命令是 systemd init 系统的一部分,如果分发使用的是 systemv,则可能无法正常工作。
VS Code 支持通过 Azure CosmosDB 扩展使用 MongoDB 数据库,可以从 VS Code 中创建、管理和查询 MongoDB 数据库。 若要了解详细信息,请访问 VS Code 文档: 使用 MongoDB。
在 MongoDB 文档中了解详细信息:
安装 Microsoft SQL Server
快速入门:在适用于 Linux 的 Windows 子系统上安装 SQL Server 并创建数据库(WSL 2)。
安装 SQLite
在 WSL 上安装 SQLite(即Ubuntu):
- 打开 WSL 终端(即Ubuntu)。
- 更新 Ubuntu 包:
sudo apt update
- 包更新后,使用以下命令安装 SQLite3:
sudo apt install sqlite3
- 确认安装并获取版本号:
sqlite3 --version
若要创建名为“example.db”的测试数据库,请输入: sqlite3 example.db
若要查看 SQLite 数据库的列表,请输入: .databases
若要查看数据库的状态,请输入: .dbinfo ?DB?
创建后,数据库将为空。 可以使用 CREATE TABLE empty (kol INTEGER);
为数据库创建新表。
现在,输入 .dbinfo ?DB?
将显示已创建的数据库。
若要退出 SQLite 提示符,请输入: .exit
有关使用 SQLite 数据库的详细信息,请参阅 SQLite 文档。
若要在 VS Code 中使用 SQLite 数据库,请尝试 SQLite 扩展。
安装 Redis
在 WSL 上安装 Redis(即Ubuntu):
- 打开 WSL 终端(即Ubuntu)。
- 更新 Ubuntu 包:
sudo apt update
- 更新包后,使用以下命令安装 Redis:
sudo apt install redis-server
- 确认安装并获取版本号:
redis-server --version
要启动 Redis 服务器,请执行以下步骤:sudo service redis-server start
检查 redis 是否正常工作(redis-cli 是与 Redis 通信的命令行接口实用工具): redis-cli ping
这应返回“PONG”的答复。
停止运行 Redis 服务器: sudo service redis-server stop
有关使用 Redis 数据库的详细信息,请参阅 Redis 文档。
若要在 VS Code 中使用 Redis 数据库,请尝试 Redis 扩展。
查看正在运行的服务并设置配置文件别名
若要查看当前在 WSL 分发版上运行的服务,请输入: service --status-all
键入sudo service mongodb start
或sudo service postgres start
和sudo -u postgrest psql
可能会很繁琐。 但是,可以考虑在 WSL 的 .profile
文件中设置别名,使这些命令更快使用,且更容易记住。
若要设置自己的自定义别名或快捷方式,用于执行以下命令:
打开 WSL 终端并输入
cd ~
,确保你位于根目录中。使用终端文本编辑器 Nano 打开控制终端设置的文件:
.profile
sudo nano .profile
在文件底部(请勿更改
# set PATH
设置),添加以下内容:# My Aliases alias start-pg='sudo service postgresql start' alias run-pg='sudo -u postgres psql'
这将允许你输入
start-pg
以开始运行 postgresql 服务并run-pg
打开 psql shell。 你可以将start-pg
和run-pg
更改为任何你想要的名称,只需注意不要覆盖 PostgreSQL 已经在使用的命令!添加新别名后,使用 Ctrl+X 退出 Nano 文本编辑器 -- 在系统提示保存并输入时选择
Y
(是)(将文件名保留为.profile
)。关闭并重新打开 WSL 终端,然后尝试新的别名命令。
故障排除
错误:目录同步 fdatasync 参数无效
确保以 WSL 2 模式运行 Linux 分发版。 有关从 WSL 1 切换到 WSL 2 的帮助,请参阅 将分发版本设置为 WSL 1 或 WSL 2。