阿里云服務器 CentOS 7 安裝 MySQL 8.4 超詳細指南
一、準備工作
- 系統要求:
- CentOS 7.9 64位
- 2 核(vCPU)2 GiB
- root 用戶權限
- 服務器連接工具:
- FinalShell
- 下載安裝包:
- 訪問 MySQL 官網
- 選擇版本:MySQL 8.4.0
- 下載 RPM Bundle 包
二、安裝步驟
連接CentOS 7,依次執行以下步驟。
步驟 1:更新系統
yum -y update
步驟 2:安裝依賴
yum install libaio -y
步驟 3:上傳安裝包
cd /root
等待上傳完畢后,進行下一步驟。
步驟 3:解壓安裝包
tar -xvf mysql-8.4.0-1.el7.x86_64.rpm-bundle.tar
步驟 4:移除沖突的 MariaDB
# 檢查已安裝的 MariaDB
rpm -qa | grep mariadb# 強制移除(如果有)
rpm -e --nodeps mariadb-libs# 再次確認是否移除成功
rpm -qa | grep mariadb
步驟 5:按順序安裝 RPM 包
rpm -ivh mysql-community-common-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.4.0-1.el7.x86_64.rpm
步驟 6:初始化 MySQL
mysqld --initialize --console
步驟 7:修改數據目錄權限
chown -R mysql:mysql /var/lib/mysql
步驟 8:啟動 MySQL 服務
systemctl start mysqld
systemctl enable mysqld # 設置開機自啟
步驟 9:獲取并修改 root 密碼
# 查看臨時密碼
cat /var/log/mysqld.log | grep "temporary password"
(從網上找了一個,忘記截圖了)
# 登錄 MySQL
mysql -uroot -p
# 輸入臨時密碼
# 查看當前的密碼策略
SHOW VARIABLES LIKE 'validate_password%';
這是 MySQL 密碼策略的配置參數,含義如下:
參數 | 值 | 說明 |
---|---|---|
validate_password.changed_characters_percentage | 0 | 密碼修改時需變更字符的比例要求(0 為無強制) |
validate_password.check_user_name | ON | 密碼不能與用戶名相同 |
validate_password.dictionary_file | 密碼字典文件路徑(未配置) | |
validate_password.length | 8 | 密碼最小長度 |
validate_password.mixed_case_count | 1 | 密碼需包含至少 1 個大小寫字母 |
validate_password.number_count | 1 | 密碼需包含至少 1 個數字 |
validate_password.policy | MEDIUM | 密碼策略等級(MEDIUM 中等) |
validate_password.special_char_count | 1 | 密碼需包含至少 1 個特殊字符 |
如果要修改策略,使用set命令,例如:
# 指定密碼中至少包含的大小寫字母組合個數為0
SET GLOBAL validate_password.mixed_case_count = 0;
# 修改密碼(需滿足復雜度要求)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass@123';# 允許遠程登錄(可選)
CREATE USER 'root'@'%' IDENTIFIED BY 'MyNewPass@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
三、安全加固
-
運行安全腳本:
mysql_secure_installation
- 移除匿名用戶
- 禁止 root 遠程登錄
- 刪除測試數據庫
-
配置防火墻:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
也可以在阿里云 云服務器管理控制臺的網絡與安全/安全組/管理規則/入方向/快速添加 里進行端口開放。
四、常用管理命令
功能 | 命令 |
---|---|
啟動服務 | systemctl start mysqld |
停止服務 | systemctl stop mysqld |
查看狀態 | systemctl status mysqld |
查看版本 | mysql -V |
連接數據庫 | mysql -u root -p |
查看錯誤日志 | tail -f /var/log/mysqld.log |
五、常見問題解決
問題 1:安裝時提示依賴沖突
- 解決:
yum remove mariadb* # 徹底移除 MariaDB rpm -e --nodeps [沖突包名]
問題 2:忘記 root 密碼
# 1. 修改配置文件
echo "skip-grant-tables" >> /etc/my.cnf# 2. 重啟服務
systemctl restart mysqld# 3. 無密碼登錄修改
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';# 4. 移除跳過密碼配置
sed -i '/skip-grant-tables/d' /etc/my.cnf
systemctl restart mysqld
問題 3:客戶端連接報 “caching_sha2_password” 錯誤
-- 登錄 MySQL 執行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass@123';
六、驗證安裝
-
檢查運行狀態:
systemctl status mysqld
? 輸出應顯示
active (running)
-
測試數據庫操作:
CREATE DATABASE testdb; USE testdb; CREATE TABLE users (id INT, name VARCHAR(20)); INSERT INTO users VALUES (1, 'CentOS7'); SELECT * FROM users;