如何在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上添加存儲庫,只需替換 bionic
與 focal
在第三個命令中。
然後更新軟件包索引並安裝MariaDB服務器。
sudo apt update sudo apt install mariadb-server
的 galera-4
軟件包將與MariaDB服務器一起自動安裝。 安裝完成後,MariaDB服務器將自動啟動。 您可以通過以下方式查看其狀態:
systemctl status mysql
要麼
systemctl status mariadb
如您所見,它處於活動狀態並正在運行。
提示:如果上述命令沒有立即退出,請按Q鍵以恢復對終端的控制。
如果它沒有運行,則可以使用以下命令手動啟動它:
sudo systemctl start mariadb
要在啟動時啟用自動啟動,請運行
sudo systemctl enable mariadb
要登錄MariaDB監視器,請運行
sudo mysql -u root
要麼
sudo mariadb -u root
如果要求輸入密碼,則需要輸入用戶的sudo密碼的密碼,而不是MariaDB根用戶密碼。
我們可以看到從mariadb.org二進制發行版安裝的服務器版本是10.4.8。 要註銷,請運行
exit;
運行安裝後腳本
要儘可能保護MariaDB服務器的安全,請運行安裝後腳本。
sudo mysql_secure_installation
MariaDB 10.04使用unix_socket身份驗證插件,因此MariaDB根用戶不需要密碼。 當腳本要求您輸入root的密碼時,只需按Enter。 對接下來的兩個問題回答“ n”。
然後,您可以按Enter鍵回答所有剩餘的問題,這將刪除匿名用戶,禁用遠程root登錄並刪除測試數據庫。 此步驟是MariaDB數據庫安全性的基本要求。 (請注意,Y是大寫的,這意味着它是默認答案。)
InnoDB與XtraDB存儲引擎
默認情況下,在MariaDB 10.1之前,MariaDB使用XtraDB存儲引擎,這是MySQL InnoDB存儲引擎的性能增強分支。 但是,隨着時間的流逝,MySQL幾乎實現了所有改進。 InnoDB已經趕上了,因此從MariaDB 10.2開始,InnoDB是默認引擎。
要檢查哪個是默認存儲引擎,請登錄MariaDB監視器並運行以下命令。
show engines;
在MariaDB 10.1上,以上命令返回以下結果,表明XtraDB是默認引擎。
在MariaDB 10.2、10.3和10.4上,上述命令返回以下結果,表明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’未加載錯誤
還有兩個其他差異值得一提。
- Ubuntu存儲庫中的MariaDB軟件包使用
/etc/mysql/mariadb.conf.d/50-server.conf
文件用於服務器配置,而MariaDB.org存儲庫中的MariaDB軟件包使用/etc/mysql/my.cnf
全新安裝中用於服務器配置的文件。 - 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。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。 保重🙂