必须用官方yum仓库安装mysql-community-server,直接yum install mysql会安装mariadb;需先清理残留mariadb/mysql包,再下载安装mysql57-community-release-el7-11.noarch.rpm、禁用mysql80-community、启用mysql57-community,最后yum install -y mysql-community-server并用临时密码初始化。

mysql-community-server 必须用官方 Yum 仓库安装,不能直接 yum install mysql ——后者装的是 MariaDB,不是 MySQL。
确认系统环境和清理旧包
CentOS 7 默认不带 MySQL,但可能残留 MariaDB 或旧版 MySQL。先检查并清干净,否则会冲突:
- 运行
rpm -qa | grep -i mysql和rpm -qa | grep -i mariadb - 若有输出(如
mariadb-libs-5.5.68-1.el7.x86_64),用yum remove -y mariadb-libs mysql-community-common卸载(注意别删错系统关键包) - 卸载后执行
find /var/lib/mysql -type d -delete 2>/dev/null清空残留数据目录(仅限全新安装,已有数据请跳过)
启用 MySQL 5.7 官方仓库
MySQL 官方 Yum 仓库默认启用的是最新版(如 8.0),必须手动切换到 5.7 分支:
- 下载并安装仓库配置包:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm && rpm -ivh mysql57-community-release-el7-11.noarch.rpm - 禁用 8.0 仓库:
yum-config-manager --disable mysql80-community - 启用 5.7 仓库:
yum-config-manager --enable mysql57-community - 验证是否生效:
yum repolist enabled | grep mysql应看到mysql57-community/x86_64
安装并启动服务
mysql-community-server 是核心服务包,安装时会自动拉取依赖(如 libaio),无需单独装:
- 执行
yum install -y mysql-community-server(不要加mysql-server,那是旧包名) - 启动服务:
systemctl start mysqld;首次启动会自动生成数据目录和临时密码 - 设为开机自启:
systemctl enable mysqld - 检查状态:
systemctl status mysqld,若显示active (running)即成功
获取临时密码并完成初始化
MySQL 5.7 强制要求首次登录用生成的临时密码,且改密必须满足强度策略(大小写+数字+特殊字符):
- 查临时密码:
grep 'temporary password' /var/log/mysqld.log,输出类似A temporary password is generated for root@localhost: xK!9pQ#m2vB - 登录:
mysql -u root -pxK!9pQ#m2vB(注意-p和密码之间**不能有空格**) - 登录后立即改密:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyP@ssw0rd123'; - 如需远程访问,再执行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyP@ssw0rd123'; FLUSH PRIVILEGES; - 防火墙若开启,记得放行端口:
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
实际部署时最容易卡在临时密码格式或密码强度上——validate_password 插件默认启用,set password = password('123') 这类弱密码会直接报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。别跳过日志检查,也别手输密码时漏掉特殊字符。











