适用于 Linux 的 Windows 子系统上的数据库入门

本分步指南将帮助你开始将 WSL 中的项目连接到数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。

先决条件

数据库系统之间的差异

数据库系统的一些 常用选项 包括:

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 分发的示例:

  1. 打开 Ubuntu 命令行并更新可用的包: sudo apt update
  2. 更新包后,使用以下命令安装 MySQL: sudo apt install mysql-server
  3. 确认安装并获取版本号: mysql --version
  4. 启动 MySQL 服务器/检查状态: systemctl status mysql
  5. 若要打开 MySQL 提示符,请输入: sudo mysql
  6. 若要查看可用的数据库,请在 MySQL 提示符下输入: SHOW DATABASES;
  7. 若要创建新数据库,请输入: CREATE DATABASE database_name;
  8. 若要删除数据库,请输入: DROP DATABASE database_name;

有关使用 MySQL 数据库的详细信息,请参阅 MySQL 文档

若要在 VS Code 中使用 MySQL 数据库,请尝试 MySQL 扩展

可能还需要运行包含的安全脚本。 这会更改远程根登录和示例用户等一些不太安全的默认选项。 此脚本还包括更改 MySQL 根用户密码的步骤。 运行安全脚本:

  1. 启动 MySQL 服务器: sudo service mysql start
  2. 启动安全脚本提示: sudo mysql_secure_installation
  3. 第一个提示将询问是否要设置 VALIDATE PASSWORD COMPONENT,该组件可用于测试 MySQL 密码强度。 如果要设置一些简单密码,则不应设置此组件。
  4. 然后,将为 MySQL 根用户设置/更改密码,决定是否删除匿名用户,决定是否允许根用户在本地和远程登录,决定是否删除测试数据库,最后决定是否立即重新加载特权表。

安装 PostgreSQL

在 WSL 上安装 PostgreSQL(即Ubuntu):

  1. 打开 WSL 终端(即Ubuntu)。
  2. 更新 Ubuntu 包: sudo apt update
  3. 更新包后,请安装 PostgreSQL(以及具有一些有用实用工具的 -contrib 包),其中包含: sudo apt install postgresql postgresql-contrib
  4. 确认安装并获取版本号: psql --version

安装 PostgreSQL 后,需要知道 3 个命令:

  • sudo service postgresql status 用于检查数据库的状态。
  • sudo service postgresql start 以开始运行数据库。
  • sudo service postgresql stop 停止运行数据库。

默认管理员用户 postgres需要分配密码才能连接到数据库。 设置密码:

  1. 输入命令:sudo passwd postgres
  2. 系统会提示输入新密码。
  3. 关闭并重新打开终端。

若要使用 psql shell 运行 PostgreSQL,请执行以下作:

  1. 启动 postgres 服务: sudo service postgresql start
  2. 连接到 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):

  1. 打开 WSL 终端(即Ubuntu)。
  2. 更新 Ubuntu 包: sudo apt update
  3. 包更新后,使用以下命令安装 SQLite3: sudo apt install sqlite3
  4. 确认安装并获取版本号: 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):

  1. 打开 WSL 终端(即Ubuntu)。
  2. 更新 Ubuntu 包: sudo apt update
  3. 更新包后,使用以下命令安装 Redis: sudo apt install redis-server
  4. 确认安装并获取版本号: 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 startsudo service postgres startsudo -u postgrest psql可能会很繁琐。 但是,可以考虑在 WSL 的 .profile 文件中设置别名,使这些命令更快使用,且更容易记住。

若要设置自己的自定义别名或快捷方式,用于执行以下命令:

  1. 打开 WSL 终端并输入 cd ~ ,确保你位于根目录中。

  2. 使用终端文本编辑器 Nano 打开控制终端设置的文件:.profilesudo nano .profile

  3. 在文件底部(请勿更改 # 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-pgrun-pg 更改为任何你想要的名称,只需注意不要覆盖 PostgreSQL 已经在使用的命令!

  4. 添加新别名后,使用 Ctrl+X 退出 Nano 文本编辑器 -- 在系统提示保存并输入时选择 Y (是)(将文件名保留为 .profile)。

  5. 关闭并重新打开 WSL 终端,然后尝试新的别名命令。

故障排除

错误:目录同步 fdatasync 参数无效

确保以 WSL 2 模式运行 Linux 分发版。 有关从 WSL 1 切换到 WSL 2 的帮助,请参阅 将分发版本设置为 WSL 1 或 WSL 2

其他资源