XAMPP多版本MySQL启动异常问题求助
解决多版本XAMPP MySQL启动混乱与权限错误
一、修复MySQL版本启动串号问题
两个XAMPP版本的MySQL默认共用3306端口,而且大概率7.3的MySQL被注册成了系统自动启动服务,导致你启动5.6时会触发系统拉起7.3的进程。按以下步骤处理:
- 先彻底停掉所有MySQL进程:打开任务管理器(Windows)或活动监视器(Mac),找到
mysqld相关进程全部结束。 - 修改XAMPP 5.6的MySQL端口:
- 打开XAMPP 5.6控制面板,点MySQL的「Config」→「my.ini」(Windows)或「my.cnf」(Mac/Linux)。
- 找到
port = 3306,改成port = 3307(选个没被占用的端口就行)。 - 如果配置里有
mysqlx-port,也改成对应不冲突的端口,比如33070。
- 检查系统服务(Windows):按Win+R输入
services.msc,找到带MySQL的服务(比如叫MySQL或XAMPP MySQL),如果是7.3版本的,把启动类型改成「手动」,防止它自动启动。 - 重启XAMPP 5.6的MySQL,然后在终端验证版本:
登录后执行mysql -u root -P 3307 -pSELECT VERSION();,确认显示的是5.6版本就没问题了。
二、解决ERROR 1045权限错误
之前的flush privileges没用,是因为你操作的可能是7.3的MySQL,不是你要修复的5.6版本。按以下步骤针对5.6版本修复:
- 先停掉XAMPP 5.6的MySQL服务,然后启动安全模式:
Windows:打开命令提示符,进入XAMPP 5.6的MySQL bin目录(比如cd C:\xampp5.6\mysql\bin),执行:
Mac/Linux:终端进入mysqld.exe --skip-grant-tables --port=3307/Applications/XAMPP5.6/xamppfiles/bin,执行:./mysqld_safe --skip-grant-tables --port=3307 & - 新开一个终端/命令提示符,直接连接MySQL(不用密码):
mysql -u root -P 3307 - 切换到mysql系统库:
USE mysql; - 更新root用户密码(把
123456改成你要的密码):UPDATE user SET password=PASSWORD('123456') WHERE User='root' AND Host='localhost'; - 刷新权限并退出:
FLUSH PRIVILEGES; EXIT; - 关掉安全模式的MySQL进程,重新启动XAMPP 5.6的MySQL,用刚才设置的密码登录就能正常访问了。
内容的提问来源于stack exchange,提问作者Maxswell
相关产品推荐
相关产品推荐

