Windows11下XAMPP中MySQL出现#2006错误崩溃求助
问题:XAMPP MySQL连接Sequelize后,访问phpMyAdmin时崩溃
环境与连接情况
- 系统:Windows 11
- 使用XAMPP集成的MySQL,通过Sequelize建立连接,代码如下:
const { Sequelize } = require('sequelize'); const sequelize = new Sequelize('hoidanit', 'root', null, { host: 'localhost', dialect: 'mysql' }); let connectDB = async () => { try { await sequelize.authenticate(); console.log('Connection has been established successfully.'); } catch (error) { console.error('Unable to connect to the database:', error); } } module.exports = connectDB;
- 控制台输出正常,连接成功:
Backend Nodejs is running on the port : 8090 Executing (default): SELECT 1+1 AS result Connection has been established successfully.
问题现象
Sequelize连接成功后,访问localhost/phpmyadmin时,XAMPP中的MySQL服务直接崩溃,phpMyAdmin提示无法连接到MySQL服务器,服务器已断开连接。
已尝试的操作
- 修改
my.ini中两个max_allowed_packet参数,从1M改为128M - 将
my.ini中的innodb_log_file_size改为128M - 修改
php.ini中的upload_max_filesize为8M
原因分析
- InnoDB日志文件配置冲突:修改
innodb_log_file_size后未清理旧日志文件,MySQL启动时检测到现有日志文件大小与配置不一致,导致服务崩溃;同时当前innodb_buffer_pool_size=16M与innodb_log_file_size=128M比例严重失衡(建议日志文件大小为缓冲池的25%),违反InnoDB配置逻辑。 - IPv4/IPv6连接冲突:
my.ini中bind-address被全部注释,MySQL同时监听IPv4和IPv6地址,Sequelize与phpMyAdmin的连接协议不一致,引发服务异常。 - 权限或进程冲突:Windows下XAMPP目录权限不足,或存在其他独立MySQL进程占用3306端口,导致服务不稳定。
解决方案
方案1:修复InnoDB日志文件配置
- 彻底停止XAMPP的MySQL服务(控制面板点击Stop,任务管理器确认
mysqld.exe进程已关闭) - 进入
C:/xampp/mysql/data目录,删除ib_logfile0和ib_logfile1两个日志文件 - 打开
my.ini,调整InnoDB配置为合理值:innodb_buffer_pool_size=64M # 根据内存调整,8G内存可设为4G innodb_log_file_size=16M # 设为缓冲池大小的25% - 重启MySQL服务,再次访问phpMyAdmin测试
方案2:强制MySQL监听IPv4
- 打开
my.ini,找到绑定地址配置:# bind-address="127.0.0.1" # bind-address = ::1 # for ipv6 - 取消注释
bind-address="127.0.0.1",注释bind-address = ::1,确保MySQL只监听IPv4地址 - 重启MySQL服务,测试连接
方案3:检查权限与进程
- 打开任务管理器,查看是否有其他
mysqld.exe进程在运行,如有则结束 - 右键XAMPP安装目录(
C:/xampp)→ 属性 → 安全 → 编辑 → 添加当前登录用户,勾选「完全控制」权限 - 重启XAMPP所有服务,测试phpMyAdmin连接
内容的提问来源于stack exchange,提问作者daonamthuan
相关产品推荐
相关产品推荐

