以 CentOS/Rocky Linux 8/9、RHEL 8/9 为例,用 dnf 安装 MySQL 8.0 社区版(官方源,可直接装 8.0,不装 8.4)。
1. 先卸载冲突的 MariaDB(必须)
bash
运行
sudo dnf -y remove mariadb* boost-*
sudo rm -rf /etc/my.cnf /var/lib/mysql
2. 导入 MySQL 官方 GPG 密钥(避免公钥错误)
bash
运行
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
3. 安装 MySQL 8.0 官方 yum 源
CentOS/Rocky/RHEL 8
bash
运行
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
CentOS/Rocky/RHEL 9
bash
运行
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
检查是否启用:
bash
运行
dnf repolist enabled | grep mysql
# 看到 mysql80-community 即可
4. 安装 MySQL 8.0 服务器
bash
运行
sudo dnf install -y mysql-community-server
查看版本:
bash
运行
mysqladmin -V
# 输出应为 8.0.xx
5. 启动服务并设置开机自启
bash
运行
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
# 显示 active (running) 正常
6. 查看初始临时密码
bash
运行
sudo grep 'temporary password' /var/log/mysql/mysqld.log
# 类似:A temporary password is generated for root@localhost: abcdefg123456
7. 登录并修改 root 密码(强密码)
bash
运行
mysql -u root -p
# 输入上面查到的临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码!123';
# 密码必须:大小写+数字+符号,长度≥8
exit;
8. 安全配置(可选推荐)
bash
运行
sudo mysql_secure_installation
按提示:
设置密码策略(建议选 1 中等)
删除匿名用户
禁止 root 远程登录(后续需远程再改)
删除 test 库
刷新权限表
9. 开放远程访问(如需)
9.1 改配置允许所有地址监听
bash
运行
sudo vi /etc/my.cnf
# [mysqld] 下添加/修改:
bind-address = 0.0.0.0
sudo systemctl restart mysqld
9.2 创建远程 root 用户(示例)
bash
运行
mysql -u root -p
CREATE USER 'root'@'%' IDENTIFIED BY '你的强密码!123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
9.3 放行防火墙(firewalld)
bash
运行
sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload
常见问题
GPG key 错误:重新执行第 2 步导入密钥
装成了 8.4:必须用
mysql80-community-release而不是 84 的包启动失败:检查
/var/log/mysqld.log,常见原因是旧数据目录残留或权限问题