必须先卸载mariadb-libs,否则yum安装MySQL 8.0会因库路径冲突卡在依赖解析阶段;需用rpm -e --nodeps强制卸载,并清理/etc/my.cnf和/var/lib/mysql残留。

直接用 yum 装官方社区版是最稳的路径,但必须先清掉 mariadb-libs,否则安装会卡死或报 Transaction Check Error。
卸载冲突的 mariadb-libs 是必须前置动作
CentOS 7 默认预装 mariadb-libs,它和 mysql-community-server 的共享库路径冲突,不处理就无法完成依赖解析。
- 先查包名:
rpm -qa | grep mariadb,通常输出类似mariadb-libs-5.5.68-1.el7.x86_64 - 强制卸载(忽略依赖):
sudo rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 - 顺手清理残留配置:
sudo rm -f /etc/my.cnf /var/lib/mysql(若存在) - 不执行这步,后续
yum install mysql-community-server会停在 “Resolving Dependencies” 并报错
添加 MySQL 8.0 官方 Yum 源要选对 RPM 包版本
不同 el7-x 后缀对应 CentOS 7 小版本兼容性,用错可能拉不到 8.0 主流包;推荐用 el7-7 或 el7-5,避免用太旧的 el7-3(部分镜像已下线)。
- 下载源包:
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm - 安装源:
sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm - 验证是否生效:
yum repolist enabled | grep mysql80-community,应看到一行输出 - 如果
yum repolist报Could not resolve host,说明 DNS 不通,临时改/etc/resolv.conf加nameserver 223.5.5.5
安装后首次启动失败?检查日志里的临时密码和 SELinux
systemctl start mysqld 失败时,90% 是因为没读日志,或 SELinux 阻止了初始化。
- 查看关键日志:
sudo grep 'temporary password' /var/log/mysqld.log,必须复制冒号后完整字符串(含大小写、符号) - 若日志为空或报
Can't open the mysql.plugin table,大概率是 SELinux 拦截,临时关掉:sudo setenforce 0 - 确认服务状态:
sudo systemctl status mysqld,看到active (running)才算真正跑起来 - 别跳过
mysql_secure_installation:它会禁用匿名用户、移除测试库、禁用远程 root,生产环境不能省
最易被忽略的是 GPG 密钥问题——yum install 过程中出现 Public key for *.rpm is not installed,就得手动导入:sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022,然后 yum clean all 再重试。


















