CentOS 7 安装 MySQL 8.0 完整教程

从零开始,手把手教你在 CentOS 7 虚拟机上安装 MySQL 8.0 数据库

MySQL 8.0.46|CentOS 7|2026-07-23]

MySQLLinux数据库

目录

  1. 环境准备与网络配置
  2. 修复 yum 源(CentOS 7 EOL)
  3. 安装 MySQL 8.0
  4. 启动 MySQL 并获取临时密码
  5. 重置 root 密码
  6. 验证安装成功
  7. 常用配置(可选)

一、环境准备与网络配置

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.cnfbind-address=0.0.0.0,并开放防火墙 3306 端口:firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload

7.3 常用运维命令速查

最后的就是这个用这个打开数据库 mysql -u root -p

操作命令
启动 MySQLsystemctl start mysqld
停止 MySQLsystemctl stop mysqld
重启 MySQLsystemctl restart mysqld
查看状态systemctl status mysqld
查看版本mysql -V
查看日志tail -f /var/log/mysqld.log