yum install mysql-server 在 centos 7 上失败是因为 base 仓库中该包实际指向 mariadb,需先卸载 mariadb-server(保留 mariadb-libs),再添加 mysql 官方 yum 源并安装 mysql-community-server。

mysql-community-server 是 CentOS 7 上通过 yum 安装 MySQL 官方社区版的核心包,但直接 yum install mysql-server 会失败——它默认指向 MariaDB,不是 MySQL。
为什么 yum install mysql-server 不行
CentOS 7 自带的 base 仓库里没有 mysql-server,只有 mariadb-server。执行该命令实际安装的是 MariaDB,端口、socket、配置路径都冲突,后续换 MySQL 会出错。
- 检查当前是否已装 MariaDB:
rpm -qa | grep -i mariadb - 若存在,必须先卸载:
yum remove mariadb-libs mariadb-server -y(注意:不加--nodeps,否则可能破坏系统依赖) -
mariadb-libs被其他包(如 postfix)依赖,卸载时提示冲突是正常现象;真正要删的是mariadb-server和mariadb,mariadb-libs留着,MySQL 安装时会覆盖或兼容
必须用官方 repo,不能只靠 epel
EPEL 仓库不提供 mysql-community-server,只提供 MariaDB 或极旧的 MySQL 分支。必须添加 MySQL 官方 Yum 源。
- 下载对应 el7 的 repo 包(2026 年最新可用):
wget https://repo.mysql.com/mysql80-community-release-el7-12.noarch.rpm - 安装 repo:
rpm -Uvh mysql80-community-release-el7-12.noarch.rpm - 验证是否生效:
ls /etc/yum.repos.d/ | grep mysql→ 应看到mysql-community.repo和mysql-community-source.repo - 该 repo 默认启用 MySQL 8.0;如需 5.7,必须显式切换:
yum-config-manager --disable mysql80-community && yum-config-manager --enable mysql57-community
安装后首次启动失败的常见原因
运行 systemctl start mysqld 报 Job for mysqld.service failed,大概率是数据目录残留或权限问题。
- 确认
/var/lib/mysql是否为空:ls -A /var/lib/mysql;若有文件,且你刚卸载过 MariaDB,**不要直接 rm -rf**,先备份再清空 - 初始化失败时日志在:
tail -n 20 /var/log/mysqld.log,典型错误如:Can't open the mysql.plugin table(说明残留旧数据)或File ./ibdata1: 'open' returned OS error 71(SELinux 阻止) - 临时关闭 SELinux 测试:
setenforce 0;若启动成功,说明需修复上下文:restorecon -Rv /var/lib/mysql - 确保
/var/log/mysqld.log可写:chown mysql:mysql /var/log/mysqld.log
获取并重置 root 密码的实际操作
MySQL 5.7+ 启动后会生成临时密码,但日志位置和格式容易看错。
- 临时密码位置固定:
grep 'temporary password' /var/log/mysqld.log - 如果返回空,说明初始化没完成;可手动触发:
mysqld --initialize --user=mysql --datadir=/var/lib/mysql(仅当服务未启动时) - 登录后必须立刻改密码,否则后续任何操作报错:
mysql -u root -p→ 输入临时密码 → 执行:ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPass123!'; - 密码强度要求严格:至少 8 位、大小写字母、数字、特殊字符各一;若不想设强密码,启动前在
/etc/my.cnf加一行:validate_password=OFF(仅测试环境)
mysql-community-server 包本身不包含客户端工具(如 mysql 命令),需要单独装 mysql-community-client;另外,my.cnf 默认不存在,首次启动后才会生成基础配置,别急着编辑。











