介紹
MariaDB 是一個開源的關聯式數據庫管理系統,通常作為流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆疊中的數據庫部分的替代品,旨在成為 MySQL 的可替代品。
此安裝指南的簡短版本包括以下三個步驟:
- 使用
apt
更新您的套件索引 - 使用
apt
安裝mariadb-server
套件。該套件還會拉取相關工具,以便與 MariaDB 進行交互 - 運行附帶的
mysql_secure_installation
安全腳本,以限制對服務器的訪問
本教程將解釋如何在 Ubuntu 22.04 服務器上安裝 MariaDB 並驗證其是否運行並具有安全的初始配置。
先決條件
- 為了跟隨這個教程,您需要運行 Ubuntu 22.04 的伺服器。這個伺服器應該有一個非 root 的管理用戶和配置了 UFW 的防火牆。請按照我們的 Ubuntu 22.04 初始伺服器設置指南進行設置。
步驟 1 — 安裝 MariaDB
截至本文撰寫時,Ubuntu 22.04 的默認 APT 存儲庫包括 MariaDB 版本 10.5.12。
要安裝它,請使用 apt
更新您的伺服器上的套件索引:
然後安裝該套件:
這些命令將安裝 MariaDB,但不會提示您設置密碼或進行其他配置更改。因為默認配置會使得您的 MariaDB 安裝不安全,您將使用由 mariadb-server
套件提供的腳本來限制對伺服器的訪問並刪除未使用的帳戶。
步驟 2 — 配置 MariaDB
對於新的 MariaDB 安裝,下一步是運行包含的安全腳本。此腳本會更改一些較不安全的默認選項,例如遠程 root 登錄和示例用戶。
運行安全性腳本:
這將帶您通過一系列提示,您可以在其中對MariaDB安裝的安全選項進行一些更改。第一個提示將要求您輸入當前數據庫root密碼。由於您尚未設置密碼,請按ENTER
表示“無”。
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
將問您是否要切換到unix套接字身份驗證。由於您已經有一個受保護的root帳戶,您可以跳過此步驟。輸入n
,然後按ENTER
。
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
下一個提示問您是否要設置數據庫root密碼。在Ubuntu上,MariaDB的root帳戶與自動系統維護密切相關,因此您不應更改該帳戶的配置身份驗證方法。
這樣做會使包更新可能破壞數據庫系統,因為它會刪除對管理帳戶的訪問權限。輸入n
,然後按ENTER
。
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
稍後,您將學習如何為密碼訪問設置額外的管理帳戶,如果套接字身份驗證不適用於您的用例。
從那裡,您可以按Y
,然後按ENTER
接受所有後續問題的默認值。這將刪除一些匿名用戶和測試數據庫,禁用遠程root登錄,並加載這些新規則,以便MariaDB立即實施您所做的更改。
有了這個,你已經完成了MariaDB的初始安全配置。下一步是一個可選步驟,但如果你希望使用密碼驗證來連接到你的MariaDB服務器,你應該遵循它。
步驟3 — (可選)創建使用密碼驗證的管理用戶
在運行MariaDB 10.5的Ubuntu系統上,默認情況下,root MariaDB用戶設置為使用unix_socket
插件進行驗證,而不是使用密碼。這在許多情況下可以提供更高的安全性和可用性,但當您需要允許外部程序(例如phpMyAdmin)擁有管理權限時,這也可能變得更加複雜。
由於服務器使用root帳戶執行任務,例如日誌輪換以及啟動和停止服務器,最好不要更改root帳戶的驗證詳情。修改/etc/mysql/debian.cnf
配置文件中的憑據可能會起初生效,但軟件包更新可能會覆蓋這些更改。軟件包維護者建議不要修改root帳戶,而是建議創建一個獨立的管理帳戶,以進行基於密碼的訪問。
為此,我們將創建一個名為 admin 的新帳戶,具有與 root 帳戶相同的功能,但配置為密碼驗證。從終端打開 MariaDB 提示符:
然後創建一個具有 root 權限和基於密碼的訪問的新用戶。請確保將用戶名和密碼更改為符合您的喜好:
刷新權限以確保它們已保存並在當前會話中可用:
完成後,退出 MariaDB shell:
最後,讓我們測試 MariaDB 安裝。
步驟 4 — 測試 MariaDB
當從默認存儲庫安裝時,MariaDB 將自動運行。要測試這一點,檢查其狀態。
您將收到類似以下的輸出:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
如果 MariaDB 沒有運行,您可以使用命令 sudo systemctl start mariadb
來啟動它。
作為額外檢查,您可以嘗試使用 mysqladmin
工具連接到數據庫,這是一個允許您運行管理命令的客戶端。例如,此命令表示要使用 Unix 套接字作為 root 連接到 MariaDB 並返回版本:
您將收到類似於此的輸出:
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
結論
在這個指南中,您安裝了MariaDB關聯式數據庫管理系統,並使用mysql_secure_installation
腳本進行了安全設置。您還可以選擇在測試MariaDB服務器功能之前創建一個使用密碼身份驗證的新管理用戶。
現在您已經擁有運行並安全的MariaDB服務器,以下是您可以進行的下一步工作的一些示例:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04