1、卸载系统自带 mariadb(避免端口、文件冲突)
sudo dnf remove -y mariadb*sudo dnf autoremove -y# 删除残留目录sudo rm -rf /var/lib/mysql /etc/my.cnf
2、安装 MySQL 官方 YUM 仓库
# 下载MySQL官方rpm源包sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpm# 刷新缓存sudo dnf makecache
3、安装 MySQL 服务端、客户端
sudo dnf install -y mysql-community-server mysql-community-client mysql-community-devel
可能出现类似如下报错:
导入 GPG 公钥 0x3A79BD29: Userid: "MySQL Release Engineering mysql-build@oss.oracle.com" 指纹: xxxxxxx. 失败的软件包是:mysql-community-client-8.0.46-1.el9.x86_64 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 mysql-community-client-plugins-8.0.46-1.el9.x86_64.rpm 的公钥没有安装. ......。 您可以通过执行 'dnf clean packages' 删除软件包缓存。 错误:GPG 检查失败
出现上述错误的原因:MySQL 新版安装包使用2023 新版 GPG 密钥,系统里只有旧的 RPM-GPG-KEY-mysql-2022 密钥,校验不匹配导致 GPG 校验失败。
解决方案:导入最新 MySQL 官方 GPG 密钥
# 下载2023最新公钥并导入系统rpm信任列表sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023# 清理旧缓存sudo dnf clean allsudo dnf makecache
然后重新执行安装命令。
4、启动服务 + 开机自启
sudo systemctl enable --now mysqld# 查看运行状态sudo systemctl status mysqld
5、获取初始临时密码(首次登录必须用)
sudo grep 'temporary password' /var/log/mysqld.log# 输出类似:root@localhost: xxxxxxxx
6、初始化安全配置(修改 root 密码、关闭弱密码检测、移除匿名用户)
执行安全脚本:
sudo mysql_secure_installation
分步填写参考:
- 输入新 root 密码(必须包含大小写 + 数字 + 符号)
Change the password for root ?Remove anonymous users?Disallow root login remotely?Remove test database and access to it?Reload privilege tables now?
7、放行防火墙 3306 端口
sudo firewall-cmd --add-port=3306/tcp --permanentsudo firewall-cmd --reload
8、配置 root 账号支持远程连接
# 登录MySQLmysql -uroot -p# 输入你设置的密码
执行 SQL:
# 授权所有IP远程访问rootCREATE USER 'root'@'%' IDENTIFIED BY 'xxxxxx';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;exit;
9、常用 my.cnf 优化配置(可选)
粘贴配置
[mysqld]port=3306socket=/var/lib/mysql/mysql.sockdatadir=/var/lib/mysqlcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_cidefault-time_zone = '+8:00'# 解决MySQL8默认密码插件Navicat低版本报错default_authentication_plugin=mysql_native_password[mysql]default-character-set=utf8mb4
重载生效
sudo systemctl restart mysqld
日常运维命令
# 启停systemctl start mysqldsystemctl stop mysqldsystemctl restart mysqld# 实时日志tail -f /var/log/mysqld.log# 登录本地mysql -uroot -p
一键彻底卸载 MySQL8(重装清理用)
sudo systemctl stop mysqldsudo dnf remove mysql-community* -ysudo rm -rf /var/lib/mysql /etc/my.cnf /var/log/mysqld.logsudo dnf autoremove -y