在Cent上安装Mysql 8.0的遇到的问题和解决办法

1,安装错误:从 GPG 错误到 root 恢复

The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package.

导入官方最新 GPG 密钥即可:

bash 复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

如果由于缓存或插件问题依然报错,可临时跳过校验完成安装( 我用的是这个解决的然后重新安装):

bash 复制代码
yum --disableplugin=fastestmirror --nogpgcheck install -y mysql-community-server

其中 --nogpgcheck 只是应急措施。生产环境建议导入密钥后正常安装,不要长期关闭签名校验。

2 获取初始化密码:

查看临时密码:安装完成后,系统会自动生成一个随机临时密码。执行以下命令查看:

bash 复制代码
sudo grep 'temporary password' /var/log/mysqld.log

运行安全脚本:使用上一步获取的密码登录,并进行安全初始化:

bash 复制代码
sudo mysql_secure_installation

按照提示依次完成修改 root 密码、移除匿名用户、禁止 root 远程登录、删除测试数据库等操。

3 防火墙和密码修改

创建远程用户并授权:

登录 MySQL (mysql -u root -p) 后执行:

sql

bash 复制代码
CREATE USER 'username'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
FLUSH PRIVILEGES;

开放防火墙端口:

bash 复制代码
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload1

第一步:停止 MySQL 服务

在修改配置前,需要先停止当前正在运行的 MySQL 服务:

bash 复制代码
sudo systemctl stop mysqld

第二步:开启免密登录模式

编辑 MySQL 的配置文件(通常为 /etc/my.cnf),在 mysqld 这一行的下方添加 skip-grant-tables 参数2。保存文件后,重启 MySQL 服务:

bash 复制代码
sudo systemctl start mysqld

第三步:无密码登录并重置密码

此时您可以直接通过以下命令免密进入 MySQL 命令行:

bash 复制代码
mysql -u root

成功进入后,依次执行以下 SQL 语句(注意:MySQL 8.0 及以上版本必须使用 ALTER USER 语法):

bash 复制代码
-- 刷新权限缓存,防止后续操作报错
FLUSH PRIVILEGES;

-- 将密码重置为您设定的新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

-- 再次刷新权限使更改生效
FLUSH PRIVILEGES;

第四步:恢复正常登录模式

密码重置成功后,需要关闭免密模式以保障数据库安全:

重新编辑配置文件 /etc/my.cnf,删除或注释掉刚才添加的 skip-grant-tables。

重启 MySQL 服务:

bash 复制代码
sudo systemctl restart mysqld

随后即可使用新密码正常登录:mysql -u root -p

💡 进阶排查:如果重置密码后依然报错

如果您确认密码正确,但仍提示 1045 错误,很可能是认证插件不兼容导致的。MySQL 8.0 默认使用 caching_sha2_password 插件,部分旧版客户端可能无法正确处理该认证方式4。

您可以尝试将 root 用户的认证方式切换为兼容性更好的传统模式。登录 MySQL 后执行:

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
相关推荐
颜颜yan_8 分钟前
Firebird 鸿蒙 PC 适配全记录:打通数据库内核、Qt 管理端与原生维护工具
数据库·qt·harmonyos
风哥2号9 分钟前
数据库教程FGMT25‑Oracle多租户架构CDB与PDB运维管理
数据库·oracle
程序猿乐锅13 分钟前
【黑马点评 | 第一篇】从 Session 到 Redis+Token 的改造与拦截器实现
数据库·redis·缓存
南京兴帝文化传媒有限公司20 分钟前
基于地图平台的本地商户信息优化:药店夜间服务标注与客户转化实操
前端·javascript·数据库·人工智能·geo 优化·geo优化避坑·ai搜索获客
u01090535925 分钟前
NAS远程访问内网穿透方案之使用神卓N600实现不限速方法
服务器·网络·数据库
野生技术架构师32 分钟前
Redis Hot Key 与 Big Key:危害、发现与解决方案
数据库·redis·缓存
杨云龙UP1 小时前
DB2 HADR 主备架构活动日志参数优化操作手册
linux·运维·服务器·数据库·db2·db2 hadr·日志参数调整
我是大猴子1 小时前
MyBatis‑Plus & MyBatis‑Flex 区别
java·服务器·数据库
鸽芷咕1 小时前
SQL Server数据库迁移避坑指南:老代码不用重写,金仓KES V9R4C019把路铺平了
数据库
鸽芷咕1 小时前
MongoDB 鸿蒙 PC 适配全记录:从 Bazel 交叉编译到 HNP 原生数据库服务
数据库·mongodb·harmonyos