本分步指南将帮助你开始将 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。