開始使用適用於 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 Server / 檢查狀態: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 命令介面執行 PostgreSQL

  1. 啟動您的 postgres 服務:sudo service postgresql start
  2. 連線至 postgres 服務並開啟 psql 命令介面:sudo -u postgres psql

成功進入了 psql 命令介面之後,您會看到命令列變更為如下的命令列:postgres=#

注意

或者,您可以使用下列命令來切換至 postgres 使用者,以開啟 psql 命令介面:su - postgres,然後輸入 psql

若要結束 postgres=#,請輸入 \q 或使用快速鍵:Ctrl+D

若要查看已在 PostgreSQL 安裝上建立哪些使用者帳戶,請從您的 WSL 終端機使用:psql --command="\du" ...,或者,如果您已開啟 psql 命令介面,則只使用 \du。 此命令會顯示資料行:帳戶使用者名稱、角色屬性清單,以及角色群組的成員。 若要結束並返回命令列,請輸入:q

如需使用 PostgreSQL 資料庫的詳細資訊,請參閱 PostgreSQL 文件

若要在 VS Code 中使用 PostgreSQL 資料庫,請嘗試 PostgreSQL 擴充功能

安裝 MongoDB

若要安裝 MongoDB,請參閱 Mongodb 文件:在 Linux 上安裝 MongoDB Community Edition

視用於安裝的 Linux 發行版本而定,安裝 MongoDB 可能需要稍微不同的步驟。 另請注意,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

若要在 WSL 所執行的 Linux 發行版本上安裝 SQL Server:Linux 上的 SQL Server。 若要在 VS Code 中使用 Microsoft SQL Server 資料庫,請嘗試 MSSQL 擴充功能

安裝 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 開啟 .profile 檔案,控制終端機的設定:sudo 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 命令介面。 您可以將 start-pgrun-pg 變更為想要的任何名稱,但要小心不要覆寫 postgres 已使用的命令!

  4. 新增別名之後,請使用 Ctrl + X 結束 Nano 文字編輯器 -- 當系統提示您儲存並按 Enter 鍵 (將檔案名稱保留為 .profile) 時,請選取 Y (是)。

  5. 關閉並重新開啟您的 WSL 終端機,然後嘗試新的別名命令。

疑難排解

錯誤:目錄同步 fdatasync 無效引數

請確定您是在 WSL 2 模式中執行 Linux 發行版本。 如需從 WSL 1 切換至 WSL 2 的說明,請參閱將發行版本設定為 WSL 1 或 WSL 2

其他資源