萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

CentOS 7 安裝 MySQL 5.6 完整教程:替換 MariaDB、配置 UTF-8、開放遠程訪問

前言

CentOS 7 預設倉庫無 MySQL,僅提供 MariaDB(MySQL 分支)。若業務強依賴 MySQL 原生特性(如特定優化器行為、插件兼容性),需手動替換。本文記錄從卸載 MariaDB、配置官方 YUM 源、安裝 MySQL 5.6、字符集調優、防火牆放行、遠程授權的全過程。

一、卸載 MariaDB

# 查看已安裝包
rpm -qa | grep mariadb
# mariadb-libs-5.5.68-1.el7.x86_64 等

# 普通卸載會因 postfix 依賴失敗
rpm -e mariadb-libs-5.5.68-1.el7.x86_64
# 錯誤:libmysqlclient.so.18 被 postfix 需要

# 強制卸載(忽略依賴)
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

注意:強制卸載後 postfix 郵件服務將無法啟動,若服務器需要發郵件,請改用 yum swap mariadb-libs mysql-community-libs 或保留 MariaDB 兼容包。

二、配置 MySQL 官方 YUM 源

# 下載 repo 包(5.6 版本對應 el7-5)
wget https://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

# 安裝源
rpm -ivh mysql-community-release-el7-5.noarch.rpm

# 驗證源已啟用
yum repolist enabled | grep mysql

三、安裝 MySQL 5.6 服務端與客戶端

yum -y install mysql-community-server mysql-community-client
# 自動解決依賴:mysql-community-common, mysql-community-libs 等

四、啟動服務並初始化

systemctl start mysqld
systemctl enable mysqld

# 5.6 首次啟動會生成隨機 root 密碼(/root/.mysql_secret)
cat /root/.mysql_secret
# 使用隨機密碼登錄
mysql -uroot -p'隨機密碼'

五、修改 root 密碼並授權遠程訪問

-- 登錄後執行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Root@StrongPass2024');
FLUSH PRIVILEGES;

-- 創建遠程訪問賬號(生產環境建議限制具體 IP 段)
CREATE USER 'app_user'@'%' IDENTIFIED BY 'App@StrongPass2024';
GRANT ALL PRIVILEGES ON `biz_db`.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

六、修改字符集為 UTF-8 (utf8mb4)

編輯 /etc/my.cnf,在 [mysqld] 區塊添加:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

重啟生效:systemctl restart mysqld,驗證參考文章 180211。

七、防火牆開放 3306 端口

# firewalld (CentOS 7 預設)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --query-port=3306/tcp  # 應返回 yes

# 若使用 iptables
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

八、雲服務器安全組同步放行

阿里雲/騰訊雲/華為雲控制台 → 安全組 → 入站規則 → 添加 TCP 3306,授權對象填應用服務器 CIDR(如 10.0.0.0/8),禁止 0.0.0.0/0。

九、驗證遠程連接

# 應用服務器測試
mysql -h 192.168.1.100 -u app_user -p'App@StrongPass2024' -e "SELECT VERSION();"
# 或使用 telnet/nc 測試端口通達性
nc -zv 192.168.1.100 3306

十、後續運維建議

  1. 禁用密碼登錄:改用 SSH 密鑰 + 堡壘機
  2. 定期備份:部署 XtraBackup 全量+增量策略
  3. 監控告警:Prometheus + mysqld_exporter 監控 QPS、連接數、複製延遲
  4. 版本升級規劃:MySQL 5.6 已停止維護(EOL 2021-02),規劃遷移至 8.0 LTS

總結

通過官方 YUM 源安裝 MySQL 5.6,配合字符集統一、最小權限授權、網絡層雙重防護,可快速交付符合基線合規的數據庫環境。生產系統請務必納入備份演練與版本生命週期管理體系。

copyright © 萬盛學電腦網 all rights reserved