CentOS8 彻底清除旧MySQL 重装 MySQL8.0
一、前言
很多人安装 MySQL8 遇到:
- 旧版本卸载不干净
- mysqld 启动失败
- 找不到临时密码(无mysqld.log)
- 密码策略报错 1819
- 本地能连、远程无法连接
本文为亲自实操、踩坑总结,命令全部可以直接复制执行,零思维负担。
二、环境
- 系统:CentOS Stream 8 / CentOS 8
- 数据库:MySQL 8.0 官方原版
- 方式:yum/dnf 官方源安装
三、第一步:彻底删除旧MySQL(必须做)
1、停止服务
bash |
2、批量卸载所有mysql mariadb
bash |
3、清除全部残留文件(解决启动失败最大坑)
bash |
4、检查是否清理干净(无输出即为干净)
bash |
四、第二步:安装 MySQL8.0
1、下载官方源
bash |
2、禁用系统自带冲突模块
bash |
3、安装mysql8.0
bash |
五、第三步:启动数据库
bash |
出现active (running)表示启动成功。
六、第四步:获取临时密码(重点!解决找不到log)
CentOS8 默认没有 /var/log/mysqld.log,使用下面命令查看临时密码:
bash |
示例返回:
A temporary password is generated for root@localhost:xxxxxx |
七、第五步:登录 + 解决密码策略报错 1819
1、登录数据库
bash |
粘贴刚才临时密码(输入不显示,直接回车)
2、复制全部执行(关闭强密码策略,设置简单密码)
sql |
本次设置密码:123456(适合开发测试)
八、第六步:开启远程连接(Navicat连接必备)
1、放行防火墙3306端口
bash |
2、开启root远程权限
bash |
sql |
九、常用命令
bash |
十、常见报错解决(踩坑记录)
1、启动失败:Job for mysqld.service failed
原因:旧残留、旧配置冲突。解决:执行本文第三步清除残留。
2、grep: /var/log/mysqld.log: No such file or directory
原因:CentOS8 新版mysql不生成log文件。解决:journalctl -u mysqld | grep password
3、ERROR 1819 密码策略不满足
解决:复制上面我给的四行sql,直接关闭强策略。
十一、总结
这套流程专为重装、报错、清理不干净的用户编写,全程无多余操作,全部命令可无脑复制粘贴。安装完成后:
- 端口:3306
- 账号:root
- 密码:123456
- 支持远程连接
|(注:文档部分内容可能由 AI 生成)
