在 Windows 子系統 Linux 版 上開始使用資料庫

本逐步指南將協助您開始將 WSL 中的專案連線至資料庫。 開始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。

必要條件

資料庫系統之間的差異

資料庫系統 最受歡迎的選擇 包括:

MySQL 是開放原始碼 SQL 關係資料庫,將資料組織成一或多個資料表,其中資料類型可能會彼此相關。 其可垂直調整,這表示一部最終電腦會為您執行工作。 它目前最廣泛使用四個資料庫系統。

PostgreSQL (有時稱為 Postgres) 也是開放原始碼 SQL 關係資料庫,強調擴充性和標準合規性。 它現在也可以處理 JSON,但通常更適用於結構化資料、垂直調整和符合 ACID 規範的需求,例如電子商務和金融交易。

Microsoft SQL Server包括 Windows、Linux 上的 SQL Server和 Azure 上的 SQL SQL Server。 這些也是在伺服器上設定的關係資料庫管理系統,其主要功能是儲存和擷取軟體應用程式所要求的資料。

SQLite 是開放原始碼的自封式、以檔案為基礎的「無伺服器」資料庫,已知其可攜性、可靠性和良好效能,即使在低記憶體環境中也一般。

MongoDB 是開放原始碼 NoSQL 檔資料庫,其設計目的是使用 JSON 並儲存無架構的資料。 其可水準調整,這表示多部較小的機器會為您執行工作。 這適用于彈性和非結構化資料,以及快取即時分析。

Redis 是開放原始碼的 NoSQL 記憶體內部資料結構存放區。 它會使用索引鍵/值組來儲存,而不是檔。 Redis 的彈性、效能和廣泛的語言支援已知。 其彈性足以作為快取或訊息代理程式使用,而且可以使用清單、集合和雜湊等資料結構。

您選擇的資料庫種類應該取決於您將使用資料庫與其搭配的應用程式類型。 建議您查閱結構化和非結構化資料庫的優缺點,並根據使用案例進行選擇。

安裝 MySQL

在 WSL (ie 上安裝 MySQL。Ubuntu) :

  1. (開啟 WSL 終端機。Ubuntu) 。
  2. 更新 Ubuntu 套件:sudo apt update
  3. 套件更新之後,請使用下列專案安裝 MySQL: sudo apt install mysql-server
  4. 確認安裝並取得版本號碼:mysql --version

您也可以執行包含的安全性腳本。 這會變更遠端根登錄和範例使用者等某些較不安全的預設選項。 若要執行安全性腳本:

  1. 啟動 MySQL 伺服器: sudo /etc/init.d/mysql start
  2. 啟動安全性腳本提示: sudo mysql_secure_installation
  3. 第一個提示會詢問您是否要設定驗證密碼外掛程式,這可用來測試 MySQL 密碼的強度。 接著,您將設定 MySQL 根使用者的密碼、決定是否要移除匿名使用者、決定是否允許根使用者同時在本機和遠端登入、決定是否要移除測試資料庫,最後決定是否要立即重載許可權資料表。

若要開啟 MySQL 提示字元,請輸入: sudo mysql

若要查看可用的資料庫,請在 MySQL 提示字元中輸入: SHOW DATABASES;

若要建立新的資料庫,請輸入: CREATE DATABASE database_name;

若要刪除資料庫,請輸入: DROP DATABASE database_name;

如需使用 MySQL 資料庫的詳細資訊,請參閱 MySQL 檔

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

安裝 PostgreSQL

在 WSL (ie 上安裝 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=# enter: \q 或使用快速鍵:Ctrl+D

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

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

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

安裝 MongoDB

若要在 WSL (Ubuntu 20.04) 上安裝 MongoDB (5.0 版) :

  1. (開啟 WSL 終端機。Ubuntu) 並移至您的主目錄: cd ~
  2. 更新 Ubuntu 套件:sudo apt update
  3. 匯入 MongoDB 套件管理系統所使用的公開金鑰: wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. 建立 MongoDB 的清單檔: echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. 重載本機套件資料庫: sudo apt-get update
  6. 安裝 MongoDB 套件: sudo apt-get install -y mongodb-org
  7. 確認安裝並取得版本號碼:mongod --version
  8. 建立目錄來儲存資料: mkdir -p ~/data/db
  9. 執行 Mongo 實例: sudo mongod --dbpath ~/data/db
  10. 檢查您的 MongoDB 實例是否正在執行, ps -e | grep 'mongod'
  11. 若要結束 MongoDB 殼層,請使用快速鍵:Ctrl + C

提示

視用於安裝的 Linux 發行版本而定,安裝 MongoDB 可能需要稍微不同的步驟。 請參閱 MongoDB 安裝教學課程。 另請注意,MongoDB 安裝可能會因您要安裝的版本 #而有所不同。 使用 MongoDB 檔左上角的版本下拉式清單,選取與您目標相符的版本。

MongoDB init 系統差異

在上述範例中,我們直接執行 MongoDB。 其他教學課程可能會使用作業系統的內建 init 系統來啟動 MongoDB。 您可能會看到用於教學課程或文章中的 sudo systemctl status mongodb 命令。 目前 WSL 不支援 systemd 在 Linux) 中 (服務管理系統。

您應該不會注意到差異,但如果教學課程建議使用 sudo systemctl,請改用:sudo /etc/init.d/。 例如,sudo systemctl status docker,若為 WSL,將是 sudo /etc/init.d/docker status ...,或者,也可以使用 sudo service docker status

新增 init 腳本以啟動 MongoDB 即服務

上述安裝指示會安裝未在 中 /etc/init.d/ 自動包含腳本的 MongoDB 版本。 如果您想要使用服務命令,您可以從 此來源下載 mongodb 的 init.d 腳本,以手動方式將此檔案放在此路徑: /etc/init.d/mongodb 然後您可以使用 來啟動 Mongo 即服務 sudo service mongodb start

  1. 下載 MongoDB 的 init.d 腳本: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. 指派該腳本可執行檔許可權: sudo chmod +x /etc/init.d/mongodb
  3. 現在您可以使用 MongoDB 服務命令:
    • sudo service mongodb status,用於檢查您資料庫的狀態。 如果沒有資料庫正在執行,您應該會看到 [失敗] 回應。
    • sudo service mongodb start 以開始執行資料庫。 您應該會看到 [確定] 回應。
    • sudo service mongodb stop,用來停止執行您的資料庫。
  4. 使用診斷命令確認您已連線到資料庫伺服器: mongo --eval 'db.runCommand({ connectionStatus: 1 })' 這會輸出目前的資料庫版本、伺服器位址和埠,以及狀態命令的輸出。 回應中 "ok" 欄位的 1 值表示伺服器正在運作。

注意

MongoDB 有數個預設參數,包括將資料儲存在 /data/db 中,並在連接埠 27017 上執行。 此外,mongod 是精靈 (資料庫的主機處理程序),而 mongo 是連線至特定 mongod 執行個體的命令列命令介面。

VS Code 支援透過 Azure CosmosDB 擴充功能使用 MongoDB資料庫,您可以從 VS Code 內建立、管理和查詢 MongoDB 資料庫。 若要深入瞭解,請流覽 VS Code 檔: 使用 MongoDB

深入瞭解 MongoDB 檔:

安裝 Microsoft SQL Server

在 WSL (ie 上安裝SQL Server。Ubuntu) ,請遵循本快速入門:安裝SQL Server並在 Ubuntu 上建立資料庫

注意

雖然可以在 WSL 上安裝和設定SQL Server,但不支援的設定。 此外,Linux 上的 SQL Server需要systemd,WSL 中不包含此系統。

若要在 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

其他資源