CentOS 6/7 預設倉庫的 MySQL 版本較舊(5.1/5.5),生產環境常需升級至 MariaDB 10.x 以獲得更好效能、新功能(如 Window Functions、CTE、JSON 支援)。本文提供官方 Yum 倉庫配置、安裝、啟動與版本驗證的標準化流程。

cat > /etc/yum.repos.d/MariaDB.repo <<'EOF'
# MariaDB 10.11 CentOS repository list - created 2024-01-15
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirror.rackspace.com/mariadb/yum/10.11/centos$releasever-amd64
gpgkey = https://mirror.rackspace.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
EOF
$releasever 會自動展開為 6、7、8、9 等主版本號。https://mirrors.aliyun.com/mariadb/yum/...)。yum clean all
yum makecache
yum search mariadb | head -20
應看到 MariaDB-server、MariaDB-client、MariaDB-backup、MariaDB-devel 等套件。
# 最小安裝(伺服器+客戶端)
yum install MariaDB-server MariaDB-client
# 完整安裝(含開發庫、備份工具、連接器等)
yum install MariaDB-*
# CentOS 7 / RHEL 7 / Rocky / Alma / Fedora (systemd)
systemctl start mariadb
systemctl enable mariadb
# CentOS 6 (SysVinit)
service mysql start
chkconfig mysql on
mysql_secure_installation
互動式完成:
1. 設定 root 密碼
2. 移除匿名用戶
3. 禁止 root 遠端登入
4. 移除 test 資料庫
5. 重新載入權限表
# 檢查版本
mysql -V
# 輸出範例:mysql Ver 15.1 Distrib 10.11.6-MariaDB, for Linux (x86_64) using readline 5.1
# 本地連線測試
mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"
# 檢查服務狀態
systemctl status mariadb
# 或
mysqladmin -u root -p status
| 現象 | 原因與對策 |
|---|---|
| yum 安裝報 GPG 金鑰錯誤 | 網路不可達或鏡像站金鑰變更 → 手動 rpm --import https://mirror.rackspace.com/mariadb/yum/RPM-GPG-KEY-MariaDB |
啟動失敗,日誌顯示 InnoDB: Unable to lock ./ibdata1 | 殘留 mysql 進程或資料目錄權限錯誤 → pkill mysqld; chown -R mysql:mysql /var/lib/mysql |
| 遠端連線被拒 | 防火牆未放行 3306 / bind-address=0.0.0.0 未設定 → 修改 /etc/my.cnf.d/server.cnf 並 firewall-cmd --add-port=3306/tcp --permanent |
遵循官方倉庫安裝,即可獲得最新穩定的 MariaDB,並享受 yum update 自動接收安全性更新。