無法連接外網的生產環境、統一標準化交付、需精確控制版本的場景。本文採用官方 RPM 包離線安裝,避免 YUM 源版本不確定性。
# 1. 查詢並移除系統自帶 MariaDB/MySQL rpm -qa | grep -i mysql yum remove -y mysql-server mysql-libs mysql-common # 2. 徹底清理殘留數據目錄(備份後操作) find / -name mysql -type d rm -rf /var/lib/mysql /var/lock/subsys/mysql # 注意拼寫:subsys 非 subsgs
從 MySQL 官網 下載對應平台的三個核心包(以 x86_64 為例):
MySQL-server-5.6.21-1.el6.x86_64.rpmMySQL-client-5.6.21-1.el6.x86_64.rpmMySQL-devel-5.6.21-1.el6.x86_64.rpm(含頭文件/庫,編譯驅動時需用)將三包上傳至服務器統一目錄,如 /taokey/tools/。
# 1. 安裝 libaio(InnoDB 必需) yum -y install libaio numactl-libs # 2. 依次安裝(順序不可亂:server 依賴 client 共享庫) rpm -ivh MySQL-client-5.6.21-1.el6.x86_64.rpm rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm rpm -ivh MySQL-devel-5.6.21-1.el6.x86_64.rpm # 若報錯缺少依賴,優先嘗試 yum install 缺失包,或下載對應 RPM 補齊
# 1. 初始化數據目錄(5.6 版本) /usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql # 2. 啟動服務並加入開機自啟 service mysql start chkconfig mysql on chkconfig --list mysql # 驗證 2345 級別均為 on
5.6 版本初始化後 root 無密碼,但會在 /root/.mysql_secret 生成隨機密碼(若啟用了隨機密碼插件)。
# 1. 讀取隨機密碼
cat /root/.mysql_secret
# The random password set for root@localhost is: F6K3v_xggFoLQeiN
# 2. 首次登入並修改密碼
mysql -uroot -p'F6K3v_xggFoLQeiN' -e "SET PASSWORD = PASSWORD('NewStrongPwd123!'); FLUSH PRIVILEGES;"
# 3. 驗證新密碼
mysql -uroot -p'NewStrongPwd123!' -e "SELECT VERSION();"
| 問題 | 原因 | 修正 |
|---|---|---|
| 安裝 server 包報 "conflicts with file from package mysql-libs" | 殘留舊版共享庫 | rpm -e --nodeps mysql-libs 強制移除後重裝 |
| 啟動失敗 "The server quit without updating PID file" | datadir 權限錯誤/殘留進程/配置錯誤 | chown -R mysql:mysql /var/lib/mysql、pkill mysqld、檢查 /etc/my.cnf |
| 中文亂碼 | 未設置字符集 | 在 [mysqld] 區塊添加 character-set-server=utf8mb4,[client] 同步設置 |
RPM 離線安裝 MySQL 5.6 核心步驟:清理舊包 → 補齊依賴 → 按序安裝三包 → 初始化數據目錄 → 修改初始密碼 → 配置自啟。全程可腳本化,適合批量交付與自動化運維。