如何在 Ubuntu 20.04 LTS 中安裝和配置 MySQL

MySQL 代表 My(聯合創始人 Michael Widenius 的女兒名)Structured Query Language,是一種開源關係數據庫管理系統。 該 RDBMS 受 Oracle 支持,幾乎可以在所有平台上運行,例如 Linux、UNIX 和 MS Windows。 MYSQL 通常是在線發布和基於 Web 的應用程序的首選。 Facebook, YouTube 和 Twitter 都使用 MySQL 作為他們的 RDBMS。 MySQL 是非常流行的 LAMP 堆棧的一部分:Linux, Apache、MySQL 和 Python/PHP/Perl。

在本文中,我們將逐步描述如何進行:

  • 安裝 apt 包存儲庫中可用的最新版本的 MySQL
  • 運行 MySQL 安全腳本
  • 配置root用戶訪問MySQL shell
  • 最後測試 MySQL 是否正在運行

我們已經在 Ubuntu 20.04 LTS 系統上運行了本文中提到的命令和過程

MySQL安裝和安全配置

在本節中,我們將描述如何從 Ubuntu 命令行安裝 MySQL 並配置安全性。

您可以從應用程序啟動器搜索欄或按 Ctrl+Alt+T 打開 Ubuntu 命令行、終端。

第 1 步:更新存儲庫索引

要從 Internet 存儲庫安裝軟件的最新可用版本,您的本地存儲庫索引必須與其匹配。 運行以下命令 sudo 更新您的本地存儲庫索引:

$ sudo apt-get 更新

第二步:用apt安裝MySQL服務器

請運行以下命令作為 sudo 從 APT 存儲庫安裝 MySQL。

$ sudo apt-get 安裝 mysql-server

請注意,只有 Ubuntu 上的授權用戶才能添加、刪除和配置軟件。

系統可能會要求您輸入密碼 sudo 並為您提供 Y/n 選項以繼續安裝。 輸入 Y 然後按 Enter; 然後將在您的系統上安裝 MySQL。 但是,該過程可能需要一些時間,具體取決於您的互聯網速度。

步驟 3:驗證安裝(可選)

您可以通過在終端中運行以下命令來驗證您的 MySQL 安裝並檢查版本號:

$ mysql –version

步驟 4:通過運行提供的安全腳本進行安全配置

每當您安裝 MySQL 的新副本時,您都應該更改一些默認設置以提高 MySQL 安裝的安全性。 這些包括刪除測試用戶、測試數據庫和允許 root 用戶遠程登錄。

運行以下命令 sudo 啟動安全腳本:

$ sudo mysql_secure_installation

當您運行此命令時,系統會提示您做的第一件事是設置驗證密碼插件。 這允許您為 root 設置安全密碼,具體取決於您要選擇的密碼強度。 鍵入 Y 啟動驗證密碼插件,您將收到以下提示:

密碼驗證策略級別

Enter 您選擇的密碼強度的數量並按 Enter. 然後系統會要求你輸入新的 root 密碼。 鍵入密碼並在以下提示中重新鍵入。

設置 MySQL 根密碼

系統隨後將顯示您提供的密碼強度,並詢問您是否要繼續使用該密碼。

密碼強度

輸入 Y 表示是,然後按 Enter.

系統現在會問您一系列問題,一次一個,您可以根據對這些問題的回答來設置系統的安全性。

系列問題:

第一個問題將詢問您是否要刪除匿名測試用戶。

刪除匿名用戶

按 y 和 Enter 鑰匙。

第二個問題將詢問您是否要禁止從遠程系統進行 root 登錄。 這通常應該是您的選擇,因為對於安全系統,root 應該只允許從 localhost 連接。

因此,我們建議您輸入 y。

第三個問題詢問您是否要從系統中刪除名為“test”的默認 MySQL 數據庫並刪除對其的訪問權限。

刪除測試數據庫

鍵入 y 以刪除此測試數據庫。

為了使上面配置的所有更改生效,系統必須重新加載權限表。 Enter y 並且您的所有安全更改都將被應用。

重新加載數據庫權限以應用更改

配置 root 以使用 MySQL shell

運行安全腳本時,您為 root 指定了密碼。 但是,不允許此用戶使用相同的密碼連接到 MySQL Shell。 您可以通過將其身份驗證方法從默認的“auth_socket”更改為“mysql_native_password”來配置 root 使用 MySQL Shell。

這是如何做到的:

第 1 步:啟動 MySQL Shell

首先,通過運行以下命令來啟動 MySQL shell sudo:

$ sudo mysql

啟動 MySQL Shell

這將啟動 MySQL shell,以便您可以在 MySQL 提示符下工作。

步驟 2:檢查 MySQL 用戶的身份驗證方法

在 MySQL 提示符下,輸入以下命令,這將允許您檢查所有 MySQL 帳戶當前正在使用的身份驗證方法/插件:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

MySQL用戶列表

在上面的輸出中,您可以看到root默認使用auth-socket插件進行身份驗證。

第 3 步:更改 root 的身份驗證方法

我們的目標是讓 root 用戶使用密碼對 MySQL 進行身份驗證。 為此,請運行以下命令,該命令將由 mysql_native_password 標識 root 用戶。 請記住,此密碼必須非常強。

mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

更改 root 用戶的身份驗證方法

從現在開始,您的 root 用戶將不再擁有您在運行提供的安全腳本時指定的密碼,而是您在上述命令中指定的強密碼。

第 4 步:重新加載授權表

現在是時候告訴服務器從現在開始使用新的權限設置。 在 MySQL 命令提示符下運行以下命令以重新加載授權表並註冊您的更改:

mysql> 刷新特權;

重新加載授權表

步驟 5:重新檢查 MySQL 用戶的身份驗證方法

現在,如果您使用以下命令重新檢查 MySQL 用戶帳戶的身份驗證方法,您將看到您的 root 用戶現在正在使用 mysql_native_password 插件進行身份驗證:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

重新檢查身份驗證方法

現在您的 root 用戶已設置為使用安全密碼連接到 MySQL shell,您可以使用 exit 命令退出 shell,如下所示:

mysql> 退出

測試 MySQL 是否正在運行

要測試 MySQL 是否在您的系統上運行,您可以使用以下方法之一:

方法一:查看mysql.service的狀態

在系統上安裝 MySQL 後,mysql.service 很可能會自動運行。 以下命令的輸出應驗證服務的活動狀態:

$ systemctl 狀態 mysql.service

檢查 MySQL 服務狀態

如果由於某種原因服務沒有運行,您可以使用以下命令作為 sudo 啟動服務:

$ sudo systemctl 啟動 mysql

如果需要,您可以使用以下命令再次停止服務:

$ sudo systemctl 停止 mysql

方法 2:通過以 root 身份連接到 MySQL Admin 並運行任何管理命令

MySQL Admin 是一個客戶端,允許您在 MySQL 上執行管理操作。 作為 example,讓我們在它上面運行一個管理命令來檢查系統是否運行正常以及我們的根是否配置為這樣做。

$ sudo mysqladmin -p -u 根版本

這個命令就是以root身份連接MySQL,獲取root密碼,然後返回MySQL admin 版本號。

使用 mysqladmin 命令檢查 MySQL 版本

如果該命令執行了它應該執行的操作並產生了與上述類似的輸出,那麼您可以確定您的 MySQL 已啟動並正在運行。

在 Ubuntu 上安裝和設置 MySQL 的過程對某些人來說可能看起來很麻煩,尤其是在使用命令行時。 但是,如果您仔細地一步一步地按照上述步驟進行操作,那麼在您的 Ubuntu 上運行可靠、安全和穩定的 MySQL 安裝就不會有任何問題。