CentOS7 安装MySQL8.0报Transaction check error文件冲突完美解决

6次阅读
没有评论

一、问题场景

在 CentOS7 系统中使用 YUM 安装 MySQL8.0 社区版 时,出现大量文件冲突报错,安装中断,核心报错为 Transaction check error

报错核心特征:MySQL8.0 安装包的 /usr/bin/mysql/etc/my.cnf、系统服务文件、工具命令、帮助文档等全部文件,与服务器已存在的 Percona-Server-5.6 文件冲突。

简单说明:Percona 是 MySQL 的衍生开源分支,文件结构、命令、配置路径与官方 MySQL 完全一致,同一服务器无法同时共存,只能二选一。

Percona 占用了 MySQL 全系核心资源:

  • 客户端命令:mysql、mysqldump、mysqladmin、mysqlbinlog 等
  • 核心配置文件:/etc/my.cnf
  • 系统服务文件:mysqld.service
  • 数据库插件、二进制程序、man帮助文档等

因此官方 MySQL8.0 安装包无法覆盖、替换已有文件,触发事务校验失败,安装终止。

三、解决方案(两种可选,生产环境推荐方案一)

方案一:卸载Percona5.6,纯净安装MySQL8.0(推荐)

适用于:需要统一使用官方 MySQL8.0、无需保留 Percona 环境、需要升级数据库版本的场景。

1. 停止现有数据库服务

先关闭运行中的数据库服务,避免文件占用:

systemctl stop mysqld
systemctl stop mysql

2. 查看所有Percona安装包

rpm -qa | grep Percona-Server

3. 完整卸载Percona全系依赖

精准卸载核心包:

yum remove -y Percona-Server-server-56 Percona-Server-client-56 Percona-Server-shared-56 Percona-Server-devel-56

若存在残留包,一键批量卸载所有Percona相关包:

yum remove -y $(rpm -qa | grep Percona-Server)

4. 【重要】备份原有数据

YUM 卸载仅删除程序包,不会删除业务数据,迁移/重装前务必备份,防止数据丢失:

cp -r /var/lib/mysql /var/lib/mysql_percona56_bak

5. 清理旧配置文件

删除Percona残留的配置文件,避免新MySQL配置冲突:

rm -f /etc/my.cnf

6. 清理缓存并重新安装MySQL8.0

yum clean all
yum install -y mysql-community-server

方案二:放弃官方MySQL,沿用Percona数据库

适用于:服务器业务稳定,不想重装数据库、不想迁移数据的场景。

Percona-Server 完全兼容原生 MySQL,日常使用的 mysql 连接、mysqldump 备份、日志解析等命令全部通用,无需额外安装官方 MySQL 包。

若需要升级版本,可直接将 Percona5.6 升级为 Percona8.0,兼容性、稳定性更适配现有环境。

四、高危操作禁止(避坑重点)

严禁使用强制覆盖安装,很多新手会用 --force--nodeps 强制安装,后果极其严重:

# 禁止执行!高危命令
yum install mysql-community-server --force
rpm -ivh xxx.rpm --force --nodeps

强制覆盖会导致 Percona 和 MySQL 文件混杂、依赖错乱,最终数据库无法启动、服务崩溃,且难以修复。

五、MySQL8.0 初始化完整步骤

卸载冲突软件、安装完成后,执行以下命令初始化数据库:

1. 启动MySQL服务

systemctl start mysqld
systemctl enable mysqld

2. 获取初始临时密码

grep 'temporary password' /var/log/mysqld.log

3. 登录并修改root密码

mysql -uroot -p

登录后执行密码修改语句(适配MySQL8.0密码规则),即可正常使用数据库。

六、总结

  • MySQL 官方版与 Percona 分支不支持共存,文件冲突是正常机制,并非安装故障;
  • 需要原生MySQL8.0则彻底卸载Percona,需要保业务稳定则沿用Percona;
  • 坚决杜绝强制覆盖安装,避免数据库环境彻底损坏;
  • 重装前务必备份 /var/lib/mysql 数据目录,保障数据安全。
正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码