首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 7 使用 YUM 安裝 MySQL 社區版完整指南:Repo、安裝、安全初始化

     編輯:MySQL 資料庫相關知識

前言:CentOS 7 官方源無 MySQL,需官方 YUM Repo

CentOS 7 預設倉庫僅有 MariaDB。安裝原生 MySQL 需配置官方 mysql-community-release Repo。本文記錄從下載 Repo、安裝 Server、重置密碼、防火牆、安全向導、遠程授權、資料目錄遷移的完整流程。

一、檢查並移除舊版本

rpm -qa | grep -i mysql
# 若有輸出,逐個移除
yum remove -y mysql mysql-server mysql-libs compat-mysql51
rpm -e --nodeps $(rpm -qa | grep -i mysql)  # 強制清理殘留
rm -rf /var/lib/mysql /etc/my.cnf

二、下載並安裝官方 Repo

wget https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 生成 /etc/yum.repos.d/mysql-community.repo 和 mysql-community-source.repo

三、安裝 MySQL Server

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

四、啟動服務並重置 root 密碼

systemctl start mysqld
systemctl enable mysqld

# 5.7+ 首次啟動生成隨機密碼於 /var/log/mysqld.log
grep 'temporary password' /var/log/mysqld.log
# 例:2023-01-01T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: xYz!Abc123

mysql -u root -p'xYz!Abc123' --connect-expired-password
# 進入後必須立即修改密碼(密碼已過期)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
FLUSH PRIVILEGES;

五、防火牆開放 3306

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
firewall-cmd --reload
# 或關閉 firewalld 用 iptables(生產建議保留 firewalld 精細控制)

六、安全初始化向導

mysql_secure_installation
# 依提示:驗證密碼插件、修改 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重新載入權限

七、建立遠程應用帳號(最小權限)

-- 僅允許特定網段應用伺服器連線
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'AppPass123!';
GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app_user'@'192.168.1.%';

-- 管理員帳號(僅內網跳板機)
CREATE USER 'dba'@'10.0.0.%' IDENTIFIED BY 'DbaPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'10.0.0.%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

八、遷移資料目錄(可選,如掛載獨立磁碟)

systemctl stop mysqld
mkdir -p /home/data
mv /var/lib/mysql /home/data/
# 編輯 /etc/my.cnf
[mysqld]
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock
# 修正 socket 路徑(client 區也要同步)
[client]
socket=/home/data/mysql/mysql.sock

# 修正 SELinux 上下文(關鍵,否則啟動失敗)
semanage fcontext -a -t mysqld_db_t "/home/data/mysql(/.*)?"
restorecon -Rv /home/data/mysql
# 或暫時 setenforce 0 驗證

systemctl start mysqld

九、驗證清單

  • mysql -u root -p -e "SELECT VERSION();" → 5.7.x / 8.0.x
  • SHOW VARIABLES LIKE 'datadir'; → 目標路徑
  • 遠程應用伺服器連線測試通過
  • systemctl status mysqld → active (running)

YUM 安裝 MySQL 社區版的優勢在於:版本更新只需 yum update mysql-community-server、依賴自動解決、系統服務整合完善。配合官方 Repo,是 CentOS 7/RHEL 7 上部署 MySQL 的標準化路徑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved