1.先清理冲突
bash
yum remove -y mariadb*
yum clean all
2.添加 阿里云 MySQL 8 YUM 源
bash
## 2. 备份旧源
mv /etc/yum.repos.d /etc/yum.repos.d.bak03
mkdir /etc/yum.repos.d
# 3. 下载阿里云 CentOS7 官方源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 4. 清理并重建缓存
yum clean all
yum makecache
安装 yum-utils
yum install -y yum-utils
#验证安装可用
yum-config-manager --help
3.安装
bash
【一键执行:CentOS7 安装 MySQL 8.0(官方源,必过)】
# 1. 清理旧仓库
rm -rf /etc/yum.repos.d/mysql*.repo
# 2. 装官方源(不换阿里云)
rpm -Uvh --force https://dev.mysql.com/get/mysql80-community-release-el7-8.noarch.rpm
# 3. 关键:禁用掉404的 connectors/tools 仓库(只留mysql80-community)
yum-config-manager --disable mysql-connectors-community
yum-config-manager --disable mysql-tools-community
yum-config-manager --enable mysql80-community
# 4. 清理缓存
yum clean all
yum makecache
# 5. 卸载冲突并安装
yum remove -y mariadb-libs
yum install -y mysql-community-server
4.安装报错
bash
============================================================================================================================================================================================================
安装 1 软件包 (+5 依赖软件包)
升级 ( 2 依赖软件包)
总下载量:91 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
警告:/var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID a8d3785c: NOKEY ] 1.3 MB/s | 5.9 MB 00:01:03 ETA
mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm 的公钥尚未安装
(1/8): mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm | 3.5 MB 00:00:02
(2/8): mysql-community-common-8.0.45-1.el7.x86_64.rpm | 667 kB 00:00:00
(3/8): mysql-community-icu-data-files-8.0.45-1.el7.x86_64.rpm | 2.3 MB 00:00:01
(4/8): mysql-community-libs-8.0.45-1.el7.x86_64.rpm | 1.5 MB 00:00:00
(5/8): openssl-1.0.2k-26.el7_9.x86_64.rpm | 494 kB 00:00:01
(6/8): openssl-libs-1.0.2k-26.el7_9.x86_64.rpm | 1.2 MB 00:00:01
(7/8): mysql-community-client-8.0.45-1.el7.x86_64.rpm | 16 MB 00:00:06
(8/8): mysql-community-server-8.0.45-1.el7.x86_64.rpm | 65 MB 00:00:18
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 3.8 MB/s | 91 MB 00:00:23
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 检索密钥
导入 GPG key 0x3A79BD29:
用户ID : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
指纹 : 859b e8d7 c586 f538 430b 19c2 467b 942d 3a79 bd29
软件包 : mysql80-community-release-el7-8.noarch (installed)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥
mysql-community-common-8.0.45-1.el7.x86_64.rpm 的公钥尚未安装
失败的软件包是:mysql-community-common-8.0.45-1.el7.x86_64
GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022, file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[root@node1 ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
#继续执行!!!!!!!!
yum install -y mysql-community-server --nogpgcheck
5.安装后续配置
5.1.初始密码查看
bash
#报错!!!
[root@node1 ~]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
#解决 彻底停掉 MySQL
[root@node1 ~]# systemctl stop mysqld
#删掉所有坏数据(清空重来)
[root@node1 ~]# rm -rf /var/lib/mysql
[root@node1 ~]# mkdir /var/lib/mysql
#修复权限
[root@node1 ~]# chown mysql:mysql /var/lib/mysql
[root@node1 ~]# chmod 755 /var/lib/mysql
#手动初始化
[root@node1 ~]# mysqld --initialize --user=mysql
#启动
[root@node1 ~]# systemctl start mysqld
# 然后查看密码
[root@node1 ~]# grep 'temporary password' /var/log/mysqld.log
2026-04-05T20:00:51.242244Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ggc:g/au<38T
[root@node1 ~]#
5.2.修改密码&远程登录
bash
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
exit;
# 允许 root 从任何 IP 连接
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
5.3.配置文件my.conf
bash
[root@node1 ~]# more /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
bind-address=0.0.0.0
#编码设置(UTF-8 永久生效)
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
5.4.其他命令
bash
#重启
systemctl restart mysqld
#开机自启
systemctl enable mysqld