对于一些刚接触的小伙伴来说,安装这一步可能就难住了一些人,因为网上大部分教程都是很长的篇幅,一时半会也看不完,搭建起来也是非常的复杂,刚安装好的时候登录也是个大问题,那么今天
Yum 安装 MySQL5.7 完整教程(CentOS7)
适用:CentOS7,使用官方 yum 源安装 MySQL5.7 社区版;CentOS8 默认 yum 为 dnf,MySQL5.7 官方不再支持 EL8,推荐 CentOS7 操作。 ⚠️ CentOS 自带 MariaDB,必须先卸载,否则端口 / 库文件冲突。
一、环境准备,卸载 MariaDB
# 查看系统自带mariadb
rpm -qa | grep mariadb
# 卸载查到的包(例子,根据自己结果替换)
rpm -e --nodeps mariadb-libs
二、安装 MySQL 官方 Yum 仓库
# 下载mysql5.7的repo包(CentOS7)
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装yum源
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
安装完成后,/etc/yum.repos.d/ 会生成 mysql-community.repo 文件。
可选:查看源是否启用 5.7
yum repolist enabled | grep mysql
三、安装 MySQL 5.7 服务端
yum install mysql-community-server -y
如果遇到 GPG 密钥报错:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
再重新执行安装命令。
四、启动 MySQL 并设置开机自启
# 启动mysqld
systemctl start mysqld
# 设置开机自动启动
systemctl enable mysqld
# 查看运行状态
systemctl status mysqld
五、获取初始临时密码(重点!MySQL5.7 自动生成)
首次启动 MySQL 会自动生成 root 临时密码,保存在日志文件:
grep 'temporary password' /var/log/mysqld.log
输出示例:
A temporary password is generated for root@localhost: qwerty!A123
qwerty!A123 就是临时密码,复制保存。
六、登录数据库,修改 root 密码
mysql -uroot -p
粘贴上面的临时密码登录。
修改 root 密码(MySQL5.7 默认密码策略强:大小写 + 数字 + 符号,最少 8 位)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
若测试环境想关闭密码复杂度策略(生产环境不建议):
set global validate_password_policy=0;
set global validate_password_length=4;
然后再设置简单密码。
安全初始化(推荐执行)
mysql_secure_installation
交互式脚本:
- 输入临时密码
- 设置新密码
- 移除匿名用户、禁止 root 远程登录、删除 test 数据库、刷新权限(生产建议全部选 y)
七、开启 root 远程访问(可选,开发常用)
默认 root 只能本地
localhost登录,远程 Navicat/DBeaver 连接需要授权
# 授权root所有IP访问,替换为你的密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root@123456';
# 刷新权限
FLUSH PRIVILEGES;
防火墙放行 3306 端口(CentOS7 firewalld)
# 永久开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
# 重载防火墙
firewall-cmd --reload
云服务器(阿里云 / 腾讯云):还要在控制台安全组放行 3306 端口,否则外部连不上。
八、基础配置 my.cnf(可选)
配置文件路径 /etc/my.cnf
vi /etc/my.cnf
常用参考配置:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8mb4
default-storage-engine=INNODB
# 关闭大小写敏感(Linux默认区分)
lower_case_table_names=1
修改后重启 MySQL 生效:
systemctl restart mysqld
九、常用命令汇总
# 重启mysql
systemctl restart mysqld
# 停止mysql
systemctl stop mysqld
# 查看日志
tail -f /var/log/mysqld.log
十、常见问题
yum 安装找不到包:mysql repo 源没有安装成功,检查/etc/yum.repos.d/下 mysql 源文件。
找不到临时密码: 检查 mysqld 是否第一次启动;如果数据目录已有数据,不会生成临时密码。清空/var/lib/mysql重新初始化(数据会丢失)。
密码报错不满足策略:必须满足大小写、数字、特殊符号,或者调低 validate_password 策略。
远程连接超时:防火墙 / 云服务器安全组没放行 3306,或者授权 root@% 没执行。











暂无评论内容