CentOS 7 安装 MySQL 8.0 完整教程
从零开始,手把手教你在 CentOS 7 虚拟机上安装 MySQL 8.0 数据库
MySQL 8.0.46|CentOS 7|2026-07-23]
MySQLLinux数据库
目录
- 环境准备与网络配置
- 修复 yum 源(CentOS 7 EOL)
- 安装 MySQL 8.0
- 启动 MySQL 并获取临时密码
- 重置 root 密码
- 验证安装成功
- 常用配置(可选)
一、环境准备与网络配置
1.1 虚拟机网络模式
确保虚拟机网络设置为NAT 模式(不要用仅主机模式),否则无法联网下载软件包。
1.2 配置网卡开机自启
CentOS 7 默认网卡ONBOOT=no,需要改为yes:
# 修改网卡配置 sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens33 # 重启网络服务 systemctl restart network # 确认获取到 IP 地址 ip addr | grep inet
预期输出
看到inet 192.168.x.x表示 IP 已分配成功。
1.3 配置 DNS
echo "nameserver 114.114.114.114" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf # 测试联网 ping -c 3 baidu.com
测试结果
ping 通 baidu.com 表示网络配置完成,可以进行后续安装。
二、修复 yum 源(CentOS 7 EOL)
CentOS 7 已于 2024 年 6 月 30 日停止维护(EOL),官方镜像源已下线,yum install会报Could not resolve host: mirrorlist.centos.org错误。需要将源切换到 vault 归档仓库:
# 备份并替换源地址 sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo # 清除缓存并重建 yum clean all yum makecache
注意
vault 源下载速度可能较慢,请耐心等待。如果仍然失败,检查 DNS 是否正确配置。
三、安装 MySQL 8.0
1
下载 MySQL 官方 Yum 仓库
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
2
安装仓库包
yum localinstall -y mysql80-community-release-el7-7.noarch.rpm
3
安装 MySQL Server
yum install -y mysql-community-server --nogpgcheck
关于 --nogpgcheck
安装时可能遇到 GPG 密钥验证失败(The public key is not installed),加上--nogpgcheck跳过验证即可正常安装。这是 MySQL 8.0.46 新包签名与现有密钥不匹配导致的已知问题。
安装成功的输出
已安装: mysql-community-libs.x86_64 0:8.0.46-1.el7 mysql-community-libs-compat.x86_64 0:8.0.46-1.el7 mysql-community-server.x86_64 0:8.0.46-1.el7 作为依赖被安装: mysql-community-client.x86_64 0:8.0.46-1.el7 mysql-community-client-plugins.x86_64 0:8.0.46-1.el7 mysql-community-common.x86_64 0:8.0.46-1.el7 mysql-community-icu-data-files.x86_64 0:8.0.46-1.el7 替代: mariadb-libs.x86_64 1:5.5.68-1.el7 完毕!
四、启动 MySQL 并获取临时密码
1
启动并设置开机自启
systemctl start mysqld systemctl enable mysqld
2
查看临时 root 密码
grep 'temporary password' /var/log/mysqld.log
输出示例
2026-07-22T16:25:29.569574Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uXk-8h7k=D5#
冒号后面的uXk-8h7k=D5#就是临时密码。
五、重置 root 密码
MySQL 8.0 默认密码策略非常严格(MEDIUM 级别),要求密码包含大小写字母、数字、特殊字符,且不能包含字典词。使用mysql_secure_installation可能多次失败,推荐使用跳过权限方式重置:
1
停止 MySQL
systemctl stop mysqld
2
跳过权限启动
mysqld --user=mysql --skip-grant-tables --skip-networking &
3
免密码进入 MySQL 并重置密码
mysql -u root
进入 MySQL 后依次执行:
FLUSH PRIVILEGES; SET GLOBAL validate_password.policy=LOW; SET GLOBAL validate_password.length=6; ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123456'; exit
4
恢复正常启动
killall mysqld systemctl start mysqld
5
用新密码登录验证
mysql -u root -p # 输入新密码 root123456
登录成功标志
看到Welcome to the MySQL monitor表示密码重置成功,MySQL 已可正常使用。
持久化密码策略(推荐)
在 MySQL 中执行以下命令,防止重启后策略恢复严格:
SET PERSIST validate_password.policy=LOW; SET PERSIST validate_password.length=6;
六、验证安装成功
# 查看 MySQL 版本 mysql -V # 查看 MySQL 运行状态 systemctl status mysqld
最终安装信息
| MySQL 版本 | 8.0.46 Community Server (GPL) |
| root 密码 | root123456(已降低策略为 LOW) |
| 开机自启 | 已启用 |
| 运行状态 | active (running) |
七、常用配置(可选)
7.1 修改字符集为 utf8mb4
编辑配置文件/etc/my.cnf,在[mysqld]下添加:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] default-character-set=utf8mb4
保存后重启:systemctl restart mysqld
7.2 允许远程连接
# 在 MySQL 中执行 CREATE USER 'root'@'%' IDENTIFIED BY 'root123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
远程连接前置条件
确保/etc/my.cnf中bind-address=0.0.0.0,并开放防火墙 3306 端口:firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
7.3 常用运维命令速查
最后的就是这个用这个打开数据库 mysql -u root -p
| 操作 | 命令 |
|---|---|
| 启动 MySQL | systemctl start mysqld |
| 停止 MySQL | systemctl stop mysqld |
| 重启 MySQL | systemctl restart mysqld |
| 查看状态 | systemctl status mysqld |
| 查看版本 | mysql -V |
| 查看日志 | tail -f /var/log/mysqld.log |