必须确认系统版本匹配仓库包,centos 7用el7版rpm、centos 8用el8版;安装前需禁用mysql57-community并启用mysql80-community;安装mysql-community-server后首次启动自动生成临时密码,需立即用alter user修改并运行mysql_secure_installation加固。

能,但必须确认系统版本匹配仓库包,否则 yum install mysql-community-server 会装错版本甚至失败。
确认 CentOS 版本并选对 RPM 包名
CentOS 7 和 CentOS 8 的 Yum 仓库包不通用,el7 和 el8 必须严格对应。运行:
cat /etc/os-release | grep VERSION_ID
输出 VERSION_ID="7" 就用 mysql80-community-release-el7-*.noarch.rpm;输出 "8" 就用 el8 版本。常见错误是把 el7 包强行装在 CentOS 8 上,结果 yum repolist 看不到 MySQL 仓库。
- 下载地址统一用官方:https://dev.mysql.com/get/mysql80-community-release-el{7|8}-1.noarch.rpm
- 别直接
yum install https://...,先wget下来再rpm -ivh,避免网络中断导致 RPM 包损坏 - 装完后立刻验证:
yum repolist enabled | grep mysql—— 必须看到mysql80-community且状态为 enabled
禁用默认启用的 MySQL 5.7 仓库
MySQL 官方 RPM 包默认同时启用了 mysql57-community 和 mysql80-community,但 yum install mysql-community-server 默认会选已启用的最高优先级版本(通常是 5.7),导致装错。
编辑配置文件:/etc/yum.repos.d/mysql-community.repo
- 找到
[mysql57-community]段,把enabled=1改成enabled=0 - 找到
[mysql80-community]段,确保enabled=1 - 改完执行
yum clean all && yum makecache刷新缓存
安装与首次启动的关键点
mysql-community-server 包含服务端、客户端、字符集等组件,但不包含初始 root 密码设置逻辑 —— 这一步由 mysqld 服务首次启动时自动生成。
- 安装命令:
yum install -y mysql-community-server(不是mysql-server,后者是旧版别名,可能指向 5.7) - 启动前先初始化数据目录:
mysqld --initialize --user=mysql(可选,若跳过,systemd 启动时会自动触发) - 真正启动:
systemctl start mysqld,然后立刻查日志:journalctl -u mysqld | grep "temporary password"—— 临时密码就在这里 - 若启动失败,大概率是 SELinux 或磁盘空间不足,先关 SELinux 测试:
setenforce 0
后续必须做的两件事
临时密码只能用一次,且强制要求修改;不改就无法执行任何 SQL 操作。
- 登录:
mysql -u root -p,粘贴日志里的临时密码 - 进去后第一句必须是:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!'; - 接着跑
mysql_secure_installation:它会帮你禁用匿名用户、删除 test 库、禁止 root 远程登录(如需远程,得手动CREATE USER并GRANT)
容易被忽略的是防火墙:CentOS 8 默认用 firewalld,不放行 3306 端口,外部根本连不上,哪怕 MySQL 配置了 bind-address = 0.0.0.0。











