首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Red Hat 9.0 / Linux 環境下 MySQL RPM 安裝與配置實戰

     編輯:MySQL 綜合教學

Red Hat / CentOS / Rocky Linux 環境 MySQL RPM 部署指南

雖然現代 Linux 多用 dnf/yum install @mysql 或官方倉庫部署,但 RPM 手動安裝仍是理解套件依賴、檔案佈局、服務管理的最佳教材。本文以 Red Hat 9.0 為例,記錄 MySQL 4.0/5.x/8.x RPM 部署全流程。

一、RPM 套件結構

  • mysql-community-server:核心服務、mysqld、系統資料庫
  • mysql-community-client:mysql、mysqladmin、mysqldump 等客戶端工具
  • mysql-community-libs:共用庫 (libmysqlclient.so),驅動程式依賴
  • mysql-community-common:通用檔案、字元集、錯誤訊息
  • mysql-community-devel:開發標頭檔、庫 (編譯驅動需求)

二、官方 YUM 倉庫部署 (推薦生產環境)

# 1. 安裝官方倉庫配置包
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

# 2. 檢查可用版本
sudo dnf module list mysql

# 3. 安裝指定版本 (8.0 預設)
sudo dnf install -y mysql-community-server

# 4. 啟動並設定開機自動啟動
sudo systemctl enable --now mysqld

# 5. 獲取臨時 root 密碼
sudo grep 'temporary password' /var/log/mysqld.log

# 6. 安全初始化
mysql_secure_installation

三、離線 RPM 手動安裝 (無網路環境)

# 1. 下載完整 RPM 套件組 (官網 Downloads → Red Hat Enterprise Linux)
# 例如 MySQL 8.0.36 for RHEL 9:
mkdir mysql-rpms && cd mysql-rpms
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.36-1.el9.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-8.0.36-1.el9.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-libs-8.0.36-1.el9.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-common-8.0.36-1.el9.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-icu-data-files-8.0.36-1.el9.x86_64.rpm

# 2. 一次性安裝 (自動解決依賴順序)
sudo rpm -ivh *.rpm

# 3. 後續步驟同官方倉庫部署

四、關鍵檔案佈局 (RPM 標準)

五、systemd 服務管理

# 狀態查看
systemctl status mysqld

# 啟動/停止/重啟
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld

# 開機自動啟動
systemctl enable mysqld
systemctl disable mysqld

# 查看服務單元
systemctl cat mysqld

六、SELinux 與防火牆配置

# SELinux: MySQL 預設政策通常足夠,若自訂 datadir 需設定標籤
sudo semanage fcontext -a -t mysqld_db_t "/custom/datadir(/.*)?"
sudo restorecon -Rv /custom/datadir

# 防火牆開放 3306 (僅信任來源)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

七、多實例部署 (mysqld_multi)

# /etc/my.cnf 範例
[mysqld_multi]
mysqld = /usr/sbin/mysqld
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
password = multi_pass

[mysqld3306]
port = 3306
datadir = /var/lib/mysql3306
socket = /var/run/mysqld3306.sock
pid-file = /var/run/mysqld3306.pid

[mysqld3307]
port = 3307
datadir = /var/lib/mysql3307
socket = /var/run/mysqld3307.sock
pid-file = /var/run/mysqld3307.pid

# 管理指令
mysqld_multi start 3306,3307
mysqld_multi stop 3306
mysqld_multi report

八、版本升級路徑

  • 5.6 → 5.7 → 8.0 (必須循序漸進,不可跨大版本)
  • 升級前:完整備份、mysqlcheck --all-databases --check-upgrade
  • 升級後:必須執行 mysql_upgrade -u root -p 更新系統表、統計資訊
  • 驗證:mysql -u root -p -e "SELECT VERSION();"

RPM 部署提供標準化、可重現、易於自動化 (Ansible/Puppet) 的安裝體驗。掌握套件結構、檔案佈局、systemd 管理,是 Linux 運維 MySQL 的核心基本功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
路徑用途
/etc/my.cnf主配置檔
/etc/my.cnf.d/模組化配置目錄
/var/lib/mysql/資料目錄 (datadir)
/var/log/mysqld.log錯誤日誌
/var/run/mysqld/mysqld.pidPID 檔
/var/run/mysqld/mysql.sockUnix Socket
/usr/bin/mysql*客戶端工具
/usr/sbin/mysqld伺服器主程式
/usr/lib64/mysql/外掛、共用庫
/usr/share/mysql/字元集、SQL 檔案、字典