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

MySQL 社區版 5.6.14 就地升級至 5.6.25 修復高危漏洞實戰

     編輯:MySQL 綜合教學

MySQL 社區版 5.6.14 就地升級至 5.6.25 修復高危漏洞實戰

生產環境 MySQL 5.6.14 經漏洞掃描發現多個高危 CVE(影響 ≤5.6.17 版本),本文記錄通過 RPM 包就地升級至 5.6.25 的完整操作流程與坑點處理。

一、升級前準備

  1. 下載 RPM 包束:MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar(含 server、client、libs、devel 等子包)
  2. 全量備份數據:
    mysqldump -u root -p --all-databases --single-transaction --master-data=2 > /backup/full_$(date +%F).sql
  3. 備份配置文件:cp /etc/my.cnf /etc/my.cnf.bak
  4. 停止服務:service mysql stop

二、解壓與組件確認

tar -xvf MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar
rpm -qa | grep -i mysql
# 輸出示例:
# mysql-community-server-5.6.14-3.el6.x86_64
# mysql-community-client-5.6.14-3.el6.x86_64
# mysql-community-libs-5.6.14-3.el6.x86_64
# mysql-community-common-5.6.14-3.el6.x86_64
# mysql-community-devel-5.6.14-3.el6.x86_64
# mysql-community-libs-compat-5.6.14-3.el6.x86_64
# perl-DBD-MySQL-4.013-3.el6.x86_64

策略:僅升級 server 與 client,保留 libs/common/devel 避免依賴地獄。

三、協載舊版核心組件

rpm -e mysql-community-server-5.6.14-3.el6.x86_64
rpm -e mysql-community-client-5.6.14-3.el6.x86_64

關鍵:必須先協載,否則直接安裝新版會報文件衝突:

file /usr/share/mysql/english/errmsg.sys from install of MySQL-server-5.6.25 conflicts with file from package mysql-community-common-5.6.14

四、安裝新版 Server 與 Client

rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.25-1.el6.x86_64.rpm

安裝輸出關鍵信息:

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.

讀取隨機密碼:

cat /root/.mysql_secret
# The random password set for the root user at ... : sFpJCf6WLhyYKc35

五、恢復配置與啟動驗證

  1. 恢復原配置:cp /etc/my.cnf.bak /etc/my.cnf
  2. 啟動服務:service mysql start
  3. 連接測試:
mysql -h localhost -u root -p
# 輸入 /root/.mysql_secret 中的隨機密碼
Welcome to the MySQL monitor... Server version: 5.6.25 MySQL Community Server (GPL)

六、Socket 文件路徑不匹配問題排查

現象:客戶端報錯 Can't connect to local MySQL server through socket '/data1/mysql/mysql.sock'

原因:/etc/my.cnf 中 [mysqld] 區段缺少 socket 參數,僅 [client] 區段配置。

修復:編輯 /etc/my.cnf 在 [mysqld] 添加:

[mysqld]
socket = /data1/mysql/mysql.sock   # 與 [client] 區段保持一致
# 其他原有參數保持不變...

重啟服務:service mysql restart

七、使用業務原密碼驗證升級結果

mysql -h zlyh08 -u root -p
# 輸入升級前業務密碼(非隨機密碼)
show databases;
# 正常顯示所有業務庫,升級成功

八、升級後檢查清單

  • SELECT VERSION(); 確認 5.6.25
  • SHOW VARIABLES LIKE 'version_compile_os'; 確認平台一致
  • 核心業務 SQL 回歸測試
  • 監控錯誤日誌無異常報警
  • 執行 mysql_upgrade -u root -p 升級系統表(可選,5.6 版本間通常無需)

經驗總結

  1. RPM 升級必須「先協載 server/client,再安裝新版」
  2. 保留 libs/common/devel 避免依賴衝突
  3. 隨機密碼文件 /root/.mysql_secret 易被忽略,務必查閱
  4. Socket 路徑需在 [mysqld] 與 [client] 雙向配置
  5. 升級前全量備份、配置備份、停機窗口評估缺一不可

此升級路徑修復了 CVE-2015-4737、CVE-2015-4744 等高危漏洞,滿足合規掃描要求。

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