公司中经常有测试相关的人,需要将 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\MySQL
C:\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 -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
命令毫无反应
任何 MySQL
命令都毫无反应,没有成功,也没有失败。
一般就解决了。