旧版本 MySQL 卸载不干净的90%问题源于 C:ProgramDataMySQL 和注册表残留;必须停止服务、强杀进程、手动删除隐藏路径及指定注册表项,并重启电脑后重装。
旧版本 MySQL 卸载不干净,90% 的问题出在 C:ProgramDataMySQL 和注册表残留上。只走控制面板卸载,几乎必然导致新安装失败、服务启动报错、root 密码沿用旧值,甚至 mysqld --initialize 生成空数据目录。
服务没停,文件被占用,后续删目录会失败;进程没杀,mysqld.exe 可能锁住配置或日志,导致新实例无法初始化。
services.msc),找到所有含 MySQL 的服务(如 MySQL80、MySQL57),右键「停止」sc queryex type= service state= all | findstr /i "mysql" 查真实服务名,然后 sc delete MySQL80(把 MySQL80 换成你查到的名字)taskkill /f /im mysqld.exe —— 不要依赖任务管理器点“结束任务”,命令行更可靠C:ProgramDataMySQL 是默认 datadir 和配置中心,Windows 资源管理器默认不显示它;AppData 下存着用户级连接配置和缓存,不清理会导致 Workbench 连接旧实例。
C:ProgramDataMySQL、C:Program FilesMySQL、C:Program Files (x86)MySQL
C:Users{用户名}AppDataRoamingMySQL 和 C:Users{用户名}AppDataLocalMySQL,全删注册表残留会让安装程序误判“已有实例”,直接跳过初始化步骤,导致无 data 目录、无 root 密码提示、服务启动后立即退出。
Win + R 输入 regedit,定位并删除以下路径下所有含 MySQL 的子项(不是整个父节点):HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
HKEY_LOCAL_MACHINESOFTWAREMySQL AB
HKEY_CURRENT_USERSoftwareMySQL AB
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMySQL AB(仅 64 位系统)
新版 MySQL(如 8.0+)默认认证插件已变,老配置文件直接复用会登录失败;环境变量没清干净,CMD 里敲 mysql 还是调用旧版客户端。
mysql-installer-community-*.msi,别用旧安装包;选择「Developer Default」或「Server Only」,避开「Full」——后者自带一堆不用的组件,增加冲突风险caching_sha2_password 会让某些客户端连不上services.msc 看服务是否为「正在运行」;netstat -ano | findstr :3306 确认端口监听;mysql -u root -p 输入你在向导里设的密码,能进就说明真干净了最易被忽略的是 AppDataRoamingMySQL 和注册表里 Wow6432Node 下的项,尤其当你装过多个版本或用过 Workbench;另外,重启不是形式主义——没重启,sc delete 的服务名仍可能被系统缓存,新安装时悄悄复用旧服务名,导致后续启停混乱。