一、安裝前準備
? ? ? ? 1. 系統更新:在安裝 MySQL 之前,確保你的 Ubuntu 系統軟件包是最新的,這能避免因軟件包版本問題導致的安裝錯誤,并獲取最新的安全補丁。打開終端,執行以下兩條命令:
sudo apt update
sudo apt upgrade -y
????????sudo apt update命令用于更新軟件包索引,讓系統知曉可用軟件包的最新版本信息。sudo apt upgrade -y則會自動安裝系統中已安裝軟件包的可用更新,-y參數表示自動回答 “是”,避免逐個確認的麻煩。
? ? ? ? 2. 檢查是否已安裝 MySQL:有些情況下,系統可能已經預裝了 MySQL 或者之前安裝過殘留文件。通過以下命令檢查:
dpkg -l | grep mysql
????????如果有相關軟件包列出,可能需要先卸載。例如,若要卸載mysql-server,可執行:
sudo apt - get remove mysql - server
????????若要徹底清除包括配置文件在內的所有內容,使用:
sudo apt - get purge mysql - server
????????卸載后,還需手動刪除可能殘留的相關目錄,如/etc/mysql和/var/lib/mysql等(操作時需謹慎,確認無重要數據留存)。
二、安裝 MySQL
????????1.使用 Ubuntu 官方倉庫安裝:
sudo apt install -y mysql - server
????????該命令會從 Ubuntu 官方軟件源下載并安裝 MySQL 服務器及其依賴項。安裝過程中,系統會提示設置root用戶的密碼。請設置一個強密碼,包含字母(大小寫)、數字和特殊字符,以增強安全性。例如:MyS3cur3P@ssw0rd!
sudo apt install -y libmysqlclient - dev
- 安裝 MySQL 服務器軟件包:在終端執行以下命令:
- 安裝 MySQL 開發包(可選):若你計劃進行 MySQL 相關開發工作,還需安裝開發包,它包含用于開發的頭文件和動態庫文件。執行:
????????2.使用 MySQL 官方倉庫安裝(獲取最新版本):
sudo apt update
然后安裝 MySQL 服務器:
sudo apt install -y mysql - server
- 下載并添加 MySQL APT 倉庫:
wget https://dev.mysql.com/get/mysql - apt - config_0.8.26 - 1_all.deb
sudo dpkg -i mysql - apt - config_0.8.26 - 1_all.deb
安裝過程中,會彈出一個配置界面,可根據需求選擇要安裝的 MySQL 版本系列(如 MySQL 8.0、MySQL 5.7 等)以及其他相關選項,一般保持默認即可。
- 首先,訪問MySQL APT?Repository 頁面,找到最新版本的mysql - apt - config包下載鏈接。例如,當前最新版本為mysql - apt - config_0.8.26 - 1_all.deb,使用wget命令下載:
- 下載完成后,安裝該配置包:
- 更新 APT 倉庫并安裝 MySQL 服務器:添加完 MySQL 官方倉庫后,更新系統軟件包索引:
三、啟動與配置 MySQL 服務
????????1.啟動 MySQL 服務:安裝完成后,MySQL 服務默認自動啟動。但如果安裝后未自動啟動,或者你手動停止了服務,可通過以下命令啟動:
sudo systemctl start mysql
????????2.設置開機自啟:為確保系統每次啟動時 MySQL 服務都能自動運行,執行:
sudo systemctl enable mysql
????????3.檢查服務狀態:使用以下命令查看 MySQL 服務是否正常運行:
sudo systemctl status mysql
????????若服務正常運行,輸出中會顯示Active: active (running)等字樣。例如:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025 - 04 - 18 10:30:00 UTC; 1min ago
Main PID: 1234 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4687)
Memory: 200.0M
CGroup: /system.slice/mysql.service
└─1234 /usr/sbin/mysqld
四、MySQL 初始設置與安全加固
- 處理初始自動生成的用戶名和密碼(部分版本適用):在某些最新版本的 MySQL 安裝過程中,系統會自動為root用戶生成一個臨時密碼。需找到該臨時密碼并進行更改。
sudo grep 'temporary password' /var/log/mysql/error.log
輸出類似如下:
(2025 - 04 - 18T10:30:00.123456Z) (Note) A temporary password is generated for root@localhost: xXxXxXxXxXx
記下該臨時密碼(例如xXxXxXxXxXx)。
sudo mysql_secure_installation
執行該腳本后,會被提示執行以下操作:
- 查找臨時密碼:安裝完成后,MySQL 會將臨時密碼記錄在日志文件中。使用以下命令查看日志并獲取臨時密碼:
- 運行安全性腳本:為提高 MySQL 的安全性,并修改初始密碼,建議運行官方提供的安全性腳本:
- 輸入當前root密碼:使用上一步驟中獲取的臨時密碼。
- 設置新root密碼:根據提示設置一個強密碼,例如包含大寫字母、小寫字母、數字和特殊字符的組合,如MyNewP@ss123!。
- 移除匿名用戶:建議選擇移除,以提高安全性。
- 禁止遠程root登錄:建議禁止,減少安全風險。
- 移除測試數據庫:建議移除,避免不必要的安全隱患。
- 重新加載權限表:選擇 “是” 以應用更改。
????????2. 手動修改root初始密碼:如果不想使用mysql_secure_installation腳本,也可手動修改root密碼。
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;
將YourNewStrongPassword!替換為你希望設置的新密碼。
sudo mysql -u root -p
輸入新密碼后,應能成功登錄。
- 登錄 MySQL:使用當前root密碼(如果是新安裝且未設置過密碼,可能為空或使用臨時密碼)登錄 MySQL:
- 修改root密碼:在 MySQL 命令行中執行以下命令以修改root用戶的密碼:
- 驗證密碼修改:退出 MySQL 并重新登錄以驗證新密碼是否生效:
五、驗證安裝
- 登錄 MySQL:使用設置好的root密碼登錄 MySQL:
mysql -u root -p
輸入密碼后,若成功登錄,會進入 MySQL 命令行界面,顯示類似如下提示符:
mysql>
????????2.檢查 MySQL 版本:在 MySQL 命令行中運行以下命令查看版本信息:
SELECT VERSION();
輸出結果類似:
+-----------+
| VERSION() |
+-----------+
| 8.0.33 |
+-----------+
這表明 MySQL 已成功安裝并運行。
六、配置防火墻(可選)
如果你的 Ubuntu 系統啟用了防火墻,且需要通過網絡訪問 MySQL,確保防火墻允許 MySQL 服務的端口(默認為 3306)的流量。
- 使用 UFW 防火墻:
sudo ufw allow 'MySQL'
或者更具體地允許 3306 端口的 TCP 流量:
sudo ufw allow 3306/tcp
sudo ufw reload
- 允許 MySQL 服務通過防火墻:執行以下命令:
- 重新加載防火墻規則:使設置生效:
????????2.使用其他防火墻(如 iptables):具體配置命令因防火墻規則管理方式而異。例如,使用iptables允許 3306 端口的 TCP 流量:
sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
????????同時,可能需要保存iptables規則,以便系統重啟后仍然生效。不同系統保存iptables規則的方式略有不同,例如在某些系統中可使用iptables - save > /etc/iptables/rules.v4命令保存規則。
七、注意事項
- 字符集設置:MySQL 默認字符集可能不符合需求,尤其是在處理包含非 ASCII 字符(如中文、日文等)的數據時。建議在安裝完成后,修改 MySQL 配置文件(通常位于/etc/mysql/mysql.conf.d/mysqld.cnf)來設置合適的字符集。例如,在文件中添加或修改以下內容:
[mysqld]
character - set - server = utf8mb4
collation - server = utf8mb4_unicode_ci
然后重啟 MySQL 服務使設置生效:
sudo systemctl restart mysql
????????注意,要先設置字符集再創建數據庫和導入數據,否則數據庫的字符集不會根據默認字符集改變而改變。
????????2.遠程訪問設置:默認情況下,MySQL 只允許本地訪問。如果需要從遠程主機訪問 MySQL,除了配置防火墻允許 3306 端口流量外,還需修改 MySQL 的配置文件。在/etc/mysql/mysql.conf.d/mysqld.cnf文件中,找到并注釋掉或修改bind - address這一行,將其值改為0.0.0.0,表示允許來自任何 IP 地址的連接(生產環境中應謹慎設置,建議只允許受信任的 IP 地址連接):
#bind - address = 127.0.0.1
bind - address = 0.0.0.0
????????然后重啟 MySQL 服務。此外,還需在 MySQL 中為遠程訪問用戶授權,例如創建一個新用戶并授予其遠程訪問權限:
CREATE USER 'new_user'@'%' IDENTIFIED BY 'new_password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%';
FLUSH PRIVILEGES;
這里new_user為新用戶名,new_password為密碼,%表示允許從任何主機連接。
????????3.備份與恢復:定期備份 MySQL 數據庫至關重要,以防止數據丟失。可使用mysqldump命令進行數據庫備份。例如,備份整個數據庫:
mysqldump -u root -p your_database > backup.sql
其中your_database為要備份的數據庫名稱,backup.sql為備份文件名稱。恢復備份時,可使用以下命令:
mysql -u root -p your_database < backup.sql
????????4.軟件包更新與兼容性:定期更新 MySQL 軟件包以獲取最新功能和安全補丁。但在更新前,務必做好數據備份,并在測試環境中先進行更新測試,確保新版本與現有應用程序兼容,避免因軟件包更新導致系統或應用程序出現問題。
????????通過以上步驟和注意事項,你應該能夠順利在 Ubuntu 系統上安裝、配置和使用 MySQL 數據庫,并保障其安全性和穩定性。