MySQL版本混淆问题:如何同时保留WampServer与MySQL 5.6?
首先,先解释下你遇到的版本显示矛盾问题:mysql --version显示5.6,但SELECT VERSION()返回5.7,是因为系统环境变量里优先指向了MySQL 5.6的bin目录,所以cmd里调用mysql命令时默认用的是5.6的客户端,但此时3306端口跑的是Wamp的MySQL 5.7服务,所以连接后查询到的是服务端版本5.7。where mysql返回5.6的路径也验证了这一点——环境变量里5.6的路径排在Wamp的MySQL路径前面。
一、如何同时保留WampServer和MySQL 5.6?
当然可以!核心是让两个MySQL服务使用不同端口,再配置好对应的连接方式就行,步骤如下:
1. 把Wamp的MySQL端口改回3308
- 打开WampManager,找到MySQL -> my.ini(路径一般是
C:\wamp64\bin\mysql\mysql5.7.19\my.ini,根据你的Wamp安装路径调整) - 找到
port=3306这一行,改成port=3308 - 确认
bind-address=127.0.0.1(限制本地访问,更安全) - 保存配置后,右键WampManager里的MySQL,选择Restart Service重启服务
2. 确保原有MySQL 5.6服务正常运行
- 按Win+R输入
services.msc打开Windows服务列表 - 找到你的MySQL 5.6服务(一般叫
MySQL56),确认它处于运行状态,启动类型设为自动 - 可以打开5.6的
my.ini(路径C:\Program Files\MySQL\MySQL Server 5.6\my.ini),检查port=3306是否正确
3. 解决cmd中使用两个MySQL的问题
现在两个服务都在运行,你需要指定端口来连接对应的版本:
- 连接MySQL 5.6(Tomcat用的版本):直接用
mysql -u root -p(默认端口3306,也可以显式加-P 3306) - 连接Wamp的MySQL 5.7:用
mysql -u root -P 3308 -p(Wamp的MySQL默认root密码为空,直接回车即可)
如果想让mysql命令默认指向5.6(符合你原来的习惯),保持当前环境变量不变就好;如果偶尔需要快速调用5.7的客户端,也可以直接用全路径:C:\wamp64\bin\mysql\mysql5.7.19\bin\mysql.exe -u root -P 3308 -p
4. 确保Tomcat Java应用继续用MySQL 5.6
修改你Java项目的数据库连接配置(比如application.properties、db.properties这类文件),确保连接URL是:
jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC
(参数根据你的JDBC驱动版本调整,比如旧版本可能不需要serverTimezone)
这样Tomcat应用就会一直连接5.6,完全不受Wamp的5.7影响。
二、如果不想保留Wamp,如何恢复原有状态?
如果最终还是想回到只有MySQL 5.6的状态,按以下步骤操作:
1. 彻底卸载WampServer
- 打开控制面板的程序和功能,找到WampServer,点击卸载
- 卸载完成后,手动删除Wamp的安装目录(比如
C:\wamp64) - 回到Windows服务列表,确认Wamp的MySQL服务(一般叫
wampmysqld64)已经被移除;如果还在,右键停止它,然后用管理员cmd执行sc delete wampmysqld64删除服务
2. 修复MySQL 5.6的使用问题
之前卸载Wamp后无法用mysql,大概率是卸载过程中影响了环境变量或服务注册:
- 检查系统环境变量的
Path:确保C:\Program Files\MySQL\MySQL Server 5.6\bin在Path里,如果不在,添加进去 - 用管理员权限打开cmd,进入
C:\Program Files\MySQL\MySQL Server 5.6\bin目录,执行mysqld --install MySQL56重新注册服务 - 执行
net start MySQL56启动服务 - 测试:执行
mysql --version应该显示5.6.26,连接后执行SELECT VERSION()也会返回5.6.26,恢复到原来的状态
三、额外提醒
- 定期备份两个MySQL的数据库:
- 备份5.6:
mysqldump -u root -p 你的数据库名 > 56_backup.sql - 备份5.7:
mysqldump -u root -P 3308 -p 你的数据库名 > 57_backup.sql
- 备份5.6:
- 不要随意修改两个MySQL的端口,避免端口冲突;如果遇到服务启动失败,可以用
netstat -ano | findstr :3306和netstat -ano | findstr :3308检查端口是否被占用 - Wamp的Apache服务和Tomcat的Apache服务如果端口都是80的话,也会冲突,记得把其中一个的端口改掉(比如Wamp的Apache改8080)
内容的提问来源于stack exchange,提问作者mohdhamm




