Win10下MySQL5.7和MySQL8.0.31共存
前言
由于平时使用的数据库是 MySQL5,目前大部分公司使用的也是 MySQL5,但是最近开发的项目需要使用 MySQL8,所以准备安装两个版本的数据库,一个工作使用,一个了解前沿技术。
一、前置工作:
备份原有数据库(MySQL mysqldump 备份数据库)
1 | mysqldump -u root -p --all-databases > D:\bak20221121.sql |
下载 MySQL 安装包(链接)
解压到对应目录
二、彻底卸载 Mysql5.6
第一步:停止服务及删除服务
停止 MySQL 服务,Cmd 管理员模式下输入net stop mysql;
检查服务Win+R
输入services.msc
找到 Mysql 服务,停止服务
并将 “-“服务”-“MySQL, 把 “正在运行” 改成 “停止” 或者 “禁用”
删除服务,Cmd 管理员模式中输入命令sc delete mysql
**第二步:清除安装本地安装文件 **
使用RevoAppBar64
卸载 MySQL5.6
使用Everything
寻找 MySQL 文件夹
找到 MySQL 的安装路径,把和 MySQl 有关的文件全部删除。
如果安装在 C 盘,注意检查一下 C:\Program Files (x86)和 C:\Program Files 这两个文件夹。
第三步:清理注册表:完全卸载完毕
删除关于 MySQl 的注册表。
在运行框内输入”regedit”,点击确定,会弹出注册表。
1 | HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL |
1 | HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL |
1 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL |
1 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL |
还有就是 F3 或 Ctrl+F 打开查找框,输入 MySQL,注意焦点放在计算机上
还有重要的一步删除 Connector Net XXX 注册表,大家失败的原因好多也是在这个注册表上面
第四步:将该路径(C:\ProgramData\MySQL)粘贴到文件资源管理器地址栏中,删除此文件夹下的所有内容。
注:如果删除文件时删除不了,检查是否还有有关 MySQL 的程序在运行,到任务管理器中去找,然后结束任务。
三、安装 MySQL5.7 和 MySQL8.0.31
配置环境变量
** 添加系统变量**MYSQL5_HOME
MYSQL8_HOME
然后在 Path 中,添加各自的 bin%MYSQL5_HOME%\bin
%MYSQL8_HOME%\bin
安装配置 MySQL5
- 进入到 mysql5 的安装目录下创建必要文件
my.ini
1 | [mysql] |
- 进入 mysql5 的父目录(以管理员启动 cmd)
1 | D: |
3.执行 mysql 初始化
1 | mysql-5.7.40\bin\mysqld --install MYSQL5 --defaults-file=D:\Software\Code\Mysql\mysql-5.7.40\my.ini |
初始化 Mysql:
1 | mysql-5.7.40\bin\mysqld --initialize --console |
注意:窗口会显示默认密码记得将其记录下来 4. 启动 mysql8
1 | net start MYSQL8 |
- 登录 mysql5 并修改密码
1 | mysql -u root -P 3305 -h localhost -p |
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; |
刷新权限
1 | flush privileges ; |
安装配置 MySQL8
- 进入到 mysql8 的安装目录下创建必要文件
my.ini
1 | [client] |
- 进入 mysql8 的父目录(以管理员启动 cmd)
1 | D: |
3.执行 mysql 初始化
1 | mysql-8.0.31\bin\mysqld --install MYSQL8 --defaults-file=D:\Software\Code\Mysql\mysql-8.0.31\my.ini |
初始化 Mysql:
1 | mysql-8.0.31\bin\mysqld --initialize --console |
注意:窗口会显示默认密码记得将其记录下来 4. 修改注册表(最重要的一步)
Win+R 运行 regedit
找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MYSQL8
的imagePath
修改为MYSQL8
的路径:
1 | D:\Software\Code\Mysql\mysql-8.0.31\bin\mysqld --defaults-file=D:\Software\Code\Mysql\mysql-8.0.31\my.ini MYSQL8 |
- 启动 mysql8
1 | net start MYSQL8 |
- 登录 mysql8 并修改密码
登录 MySQL8
1 | mysql -u root -P 3308 -h localhost -p |
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; |
刷新权限
1 | flush privileges ; |
四、常见问题
1.net start mysql 发生系统错误
先切到 mysql 的 bin 目录的根路径,下面以我的路径为例
1 | D: |
先把 mysql 删除:
1 | mysqld --remove |
再重新安装:
1 | mysqld --install |
最后再启动:
1 | net start mysql |
成功启动! 2.如何忘记密码进行修改 mysql 密码
对于5.7版本: 1.在命令行输入 net stop mysql
关闭当前运行的 mysql。
2.切换到 MySQL 安装路径下:D:\Enviroment\MySQL-5.7.19\bin;如果已经配了环境变量,可以不用切换了。
命令行输入:
1 | mysqld -nt --skip-grant-tables |
这时这个 cmd 窗口会卡住
3.重新打开一个 cmd,用管理员打开,输入 mysql -uroot -p;如果提示密码直接回车就进去了
4.修改密码:
1 | use mysql; |
1 | flush privileges; |
对于 mysql8.0 以上的有几点不一样的地方:
1.将第 2 步的,命令行改为:mysqld –console –skip-grant-tables –shared-memory 这时这个 cmd 窗口会卡住;
2.然后重启一个 CMD 窗口,输入mysql -uroot -p
,按空格直接进入,不用输入密码。
然后输入指令:
3.再输入:
1 | flush privileges ; |
4.修改密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; |
对于本机已经有 mysql5.7 了但 Mysql8 失败的原因
原因:我在网上找了很多博客,最后终于在修改注册表那里发现了为什么再输入初始密码哪里总是报 ERROR;原因是我们 initial 的时候,data 文件的路径是指向 mysql5.7 的,因此我们需要将注册表路径换了
五、参考
Win10 下 mysql5.5 和 mysql8.0.20 共存
Win 下同时安装 MySQL5 和 MySQL8 并存
Windows10 中同时安装 MySQL5 和 MySQL8
Windows 下同时安装 Mysql5.7 和 Mysql8.28 版本的最详细配置
多版本 MySQL 的同时安装及配置