萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 升級 MySQL 後報錯「conflicts with file from package」解決方案

升級 MySQL(如 5.0 → 5.1/5.5)時,rpm 或 yum 報錯:

file /usr/share/mysql/charsets/Index.xml from install of mysql-5.1.x conflicts with file from package mysql-libs-5.0.95

核心原因:**舊版 mysql-libs 共享庫文件與新版 MySQL 文件衝突**,且舊包被其他包依賴(如 postfix、php-mysql),直接 rpm -e 會級聯刪除大量包。

標準解決流程

1. 移除衝突的 mysql-libs(不檢查依賴)

# 方法 A:rpm 強制卸載(慎用,會破壞依賴關係)
rpm -e --nodeps mysql-libs-5.0.95-5.el5_9.x86_64

# 方法 B:yum 移除(自動處理依賴,會一併刪除依賴它的包,需記錄以便重裝)
yum -y remove mysql-libs-5.0.95*

2. 安裝目標版本 MySQL

# 示例:安裝 MySQL 5.1(官方 RPM 或自編譯)
rpm -ivh mysql-5.1.58-jason.1.i386.rpm
rpm -ivh mysql-server-5.1.58-jason.1.i386.rpm
rpm -ivh mysql-devel-5.1.58-jason.1.i386.rpm

# 或使用官方 Yum Repo (推薦)
yum install mysql-community-server-5.1.x

3. 升級系統表(關鍵步驟,修復權限、元數據)

service mysqld start
mysql_upgrade -uroot -p'new_root_password'
# 輸出 "OK" 表示成功

版本選擇建議

  • 避開 MySQL 5.5 早期版本:兼容性問題多,InnoDB 插件化初期有坑。
  • 推薦 MySQL 5.1 (EOL) → 5.6/5.7/8.0:若業務允許,直接跳躍至長期支持版(5.7/8.0),一次到位。
  • MariaDB 替代:yum install MariaDB-server,兼容性更好、性能更優、開源社區活躍。

Webmin 等管理面板後續修復

若使用 Webmin 管理 MySQL,升級後可能報錯「Cannot create database/user」。兩種修復:

  1. SQL 手動修復:向 mysql.servers 表插入缺失記錄。
  2. 命令行重建權限:mysql_upgrade -uroot -p'password' 徹底修復系統表結構與權限。

預防性檢查清單

  1. 升級前 rpm -qa | grep mysql 記錄所有包版本。
  2. 備份 /etc/my.cnf、/var/lib/mysql(或快照)。
  3. 停止業務寫入,FLUSH TABLES WITH READ LOCK 導出邏輯備份(mysqldump --all-databases)。
  4. 在測試環境演練全流程。

遵循「備份 → 移除舊 libs → 安裝新版 → mysql_upgrade → 驗證 → 恢復業務」標準化流程,MySQL 版本升級將不再是噩夢。

copyright © 萬盛學電腦網 all rights reserved