公司中经常有测试相关的人,需要将 5 过度到 8 版本,但是,总是会出现这样那样的问题,这里根据我的经验进行汇总。
注意,环境均在 win10 上。
卸载 mysql5「默认 exe 安装方式」
首先,很难把 mysql5 卸载干净,总是会出现这样那样的残留,但是,我觉得问题不大。究其原因,因为绿色版本安装的时候,会重新把 MySQL 指向你安装的版本,即便是卸载不干净也是不耽误使用。
但是,为了少出错,还是卸载干净的好。
停止服务
win + R 输入 services.msc 。停掉 MySQL 或者 MySQL80 服务。
为什么会有 MySQL 或者 MySQL80 呢?这两个都是 mysql 的服务,只不过 exe 安装方式,默认 mysql 服务的名字叫做 MySQL80,而有时候你会自定义这个名字,或者绿色安装的时候你的配置文件写的服务名字是 MySQL,参考 安装 mysql 中 win10安装过程 绿色安装版本「推荐」的 「将mysql注册为windows系统服务」的执行命令。
卸载程序
win10 自带的卸载程序,把相关的程序都卸载掉。
删除 MySQL 相关文件和目录
C:/ProgramData/MySQL/C:\Program Files\MySQLC:\Program Files(x86)\MySQL
上面的文件夹有就删除,没有的话,可以看看 my.ini 配置文件中的路径是什么,找不到的话,就不管了。
删除注册表
win + R 输入 regedit ,删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 文件夹HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 文件夹HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
有就删除,没有就不用管
重启
所有的弄完后重启。
ps: 从道理上来讲,可能已经卸载干净了,但是,总会有或多或少的残余或者不知名情况,我觉得不用过于纠结。
检测 mysql 残留
为什么还要检测 mysql 残留呢?
考虑这样一种情况,你电脑上的 mysql 根本不是单独安装的,而是某一个程序中的一个组件,所以,即便是你把程序卸载了,但是,那个组件一开启还是会重新安装 MySQL。具体案例请看 mysql | 记录一次远程协助安装 mysql 的经历
可以通过 MySQL client 或者 Nvicat 进行检测。
安装 mysql 绿色安装
具体请参考 安装 mysql win10安装过程 绿色安装版本「推荐」。
可能出现的错误
Navicat连接MySQL数据库的1251错误
这是因为 mysql5 的密码连接方式是明文连接,但是 8 以后,默认加密连接。但是,你的 nvicat 有可能是原来的连接 5 的配置,或者没有对 8 进行更改。
如果,只是本地使用的话,可以让 mysql8 的加密方式进行降级,变成明文连接。
mysql -uroot -pALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;FLUSH PRIVILEGES;
命令毫无反应
任何 MySQL 命令都毫无反应,没有成功,也没有失败。
一般就解决了。