如何在Ubuntu 18.04,Ubuntu 20.04上安裝MariaDB 10.4

本教程將向您展示如何在Ubuntu 18.04和Ubuntu 20.04服務器上安裝MariaDB 10.4。 MariaDB是從MySQL派生的成熟,穩定,開源的關係數據庫。 大多數Linux發行版已將MySQL替換為MariaDB作為默認數據庫服務器。 MariaDB支持包括Google,Wikipedia,騰訊,Verizon,德意志銀行,華泰證券等公司和組織的應用程序。

在撰寫本文時,最新的穩定版本是MariaDB 10.4.8,已於2019年9月11日發布。值得注意的更改包括:

  • unix_socket身份驗證插件現在在類似Unix的平台上是默認的。
  • mysql.user 表已退休。 用戶帳戶和全局特權現在存儲在 mysql.global_priv 表。
  • 過時的 mysql.host 表已不再創建。
  • Galera已從Galera 3升級到Galera 4。
  • 和更多。

每個MariaDB的主要發行版將至少保留5年。 在2024年6月之前,將支持MariaDB 10.4。

從官方存儲庫在Ubuntu 18.04、20.04上安裝MariaDB 10.4

默認的Ubuntu存儲庫包含MariaDB軟件包,但是版本已過時。 Ubuntu 18.04僅包含MariaDB 10.1,而Ubuntu 20.04僅包含MariaDB 10.3。 我們可以從官方MariaDB存儲庫中安裝最新版本。

訪問https://downloads.mariadb.org/mariadb/repositories,然後選擇您要使用的Linux發行版,發行版,版本和存儲庫鏡像。 例如,我選擇了Ubuntu 18.04,MariaDB 10.4和Limestone Networks鏡像,如以下屏幕截圖所示。

做出所有選擇後,自定義說明將顯示在頁面底部。 例如,我需要運行以下命令以在Ubuntu 18.04上添加存儲庫。

sudo apt-get install software-properties-common

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'

要在Ubuntu 20.04上添加存儲庫,只需替換 bionicfocal 在第三個命令中。

然後更新軟件包索引並安裝MariaDB服務器。

sudo apt update

sudo apt install mariadb-server

galera-4 軟件包將與MariaDB服務器一起自動安裝。 安裝完成後,MariaDB服務器將自動啟動。 您可以通過以下方式查看其狀態:

systemctl status mysql

要麼

systemctl status mariadb

如您所見,它處於活動狀態並正在運行。

mariadb飛行狀態

提示:如果上述命令沒有立即退出,請按Q鍵以恢復對終端的控制。

如果它沒有運行,則可以使用以下命令手動啟動它:

sudo systemctl start mariadb

要在啟動時啟用自動啟動,請運行

sudo systemctl enable mariadb

要登錄MariaDB監視器,請運行

sudo mysql -u root

要麼

sudo mariadb -u root

如果要求輸入密碼,則需要輸入用戶的sudo密碼的密碼,而不是MariaDB根用戶密碼。

mariadb 10.4 unix_socket插件

我們可以看到從mariadb.org二進制發行版安裝的服務器版本是10.4.8。 要註銷,請運行

exit;

運行安裝後腳本

要儘可能保護MariaDB服務器的安全,請運行安裝後腳本。

sudo mysql_secure_installation

MariaDB 10.04使用unix_socket身份驗證插件,因此MariaDB根用戶不需要密碼。 當腳本要求您輸入root的密碼時,只需按Enter。 對接下來的兩個問題回答“ n”。

mariadb 10.4 Ubuntu 18.04

然後,您可以按Enter鍵回答所有剩餘的問題,這將刪除匿名用戶,禁用遠程root登錄並刪除測試數據庫。 此步驟是MariaDB數據庫安全性的基本要求。 (請注意,Y是大寫的,這意味着它是默認答案。)

mariadb Ubuntu的10.10

InnoDB與XtraDB存儲引擎

默認情況下,在MariaDB 10.1之前,MariaDB使用XtraDB存儲引擎,這是MySQL InnoDB存儲引擎的性能增強分支。 但是,隨着時間的流逝,MySQL幾乎實現了所有改進。 InnoDB已經趕上了,因此從MariaDB 10.2開始,InnoDB是默認引擎。

要檢查哪個是默認存儲引擎,請登錄MariaDB監視器並運行以下命令。

show engines;

在MariaDB 10.1上,以上命令返回以下結果,表明XtraDB是默認引擎。

XtraDB存儲引擎

在MariaDB 10.2、10.3和10.4上,上述命令返回以下結果,表明InnoDB是默認引擎。

InnoDB存儲引擎

故障排除

注意:此故障排除技巧不再適用於MariaDB 10.4,該數據庫現在默認使用unix_socket身份驗證插件。 但是,如果您仍在使用MariaDB 10.3,則可能會發現它很有用。

如果以前從默認的Ubuntu存儲庫安裝了MariaDB,現在又從mariadb.org安裝了最新的MariaDB,則嘗試登錄時可能會遇到以下錯誤。

ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

這是因為MariaDB.org二進制文件仍然使用 mysql_native_password 插件來驗證用戶登錄,而來自Ubuntu存儲庫的MariaDB二進制文件使用 unix_socket 用於驗證用戶登錄信息的插件。 前者要求用戶輸入密碼,而後者則允許用戶運行以下命令登錄,而不必提供MariaDB根密碼。

sudo mysql -u root

最初,MariaDB根用戶設置為使用 unix_socket 登錄,因為它是從Ubuntu存儲庫安裝的,但是現在您從mariadb.org安裝了一個新的二進制文件,這將禁用 unix_socket 插件,因此您將看到上述錯誤。

如果您想繼續使用 unix_socket 方法,然後編輯 50-server.cnf 文件。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

將以下行添加到 [mariadb] 底部的單位。

plugin_load_add = auth_socket

保存並關閉文件。 然後重新啟動MariaDB服務器,以使更改生效。

sudo systemctl restart mariadb

如果您喜歡使用 mysql_native_password 方法,請參閱以下文章。

  • 如何修復MariaDB插件’unix_socket’未加載錯誤

還有兩個其他差異值得一提。

  1. Ubuntu存儲庫中的MariaDB軟件包使用 /etc/mysql/mariadb.conf.d/50-server.conf 文件用於服務器配置,而MariaDB.org存儲庫中的MariaDB軟件包使用 /etc/mysql/my.cnf 全新安裝中用於服務器配置的文件。
  2. mariadb.org存儲庫中的MariaDB軟件包將創建一個 debian-sys-maint 用戶,而來自Ubuntu存儲庫的MariaDB軟件包不會創建該用戶。 該用戶的密碼存儲在 /etc/mysql/debian.cnf 文件。

如果您在運行時看到以下錯誤 sudo systemctl status mariadb 命令。

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

您可能需要重新配置 mariadb-server-10.3 使用以下命令打包。

sudo dpkg-reconfigure mariadb-server-10.3

當重新配置嚮導要求您輸入新的root密碼時,只需按Tab鍵並按Enter,這樣就不會更改root密碼。

結論

而已。 我希望本文能幫助您在Ubuntu 18.04和Ubuntu 18.04上安裝最新版本的MariaDB。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。 保重🙂

Sidebar