Ubuntu 20.0.2服务器用nodemon启动Node遇ERR_OUT_OF_RANGE错误求助
错误原因排查及解决方法
错误核心原因
- 端口配置错误:你配置的MySQL端口是
33060,这是MySQL的X Protocol(用于文档存储)专用端口,而你使用的mysql驱动包仅支持传统MySQL协议的默认端口3306,驱动解析X协议的握手包时会触发Buffer越界的ERR_OUT_OF_RANGE错误。 - 驱动版本兼容性问题:旧版
mysql驱动包与高版本MySQL服务器(8.0+)的握手协议格式不兼容,解析初始化数据包时超出Buffer范围。
具体解决方法
方法1:修正MySQL端口配置
将ormConfig.json和datasource.ts中的port字段从33060改为3306:
// ormConfig.json { "port": 3306 }
// datasource.ts export const AppDataSource = new DataSource({ port: 3306, // 其他配置保持不变 });
可通过netstat -tulpn | grep mysql命令验证MySQL服务是否在3306端口正常运行。
方法2:替换为兼容的MySQL驱动
卸载旧的mysql包,安装适配新MySQL版本的mysql2驱动:
npm uninstall mysql npm install mysql2
若需要,可在TypeORM配置中显式指定驱动:
// datasource.ts export const AppDataSource = new DataSource({ type: 'mysql', driver: require('mysql2'), // 其他配置保持不变 });
方法3:统一配置文件
确保ormConfig.json和datasource.ts的配置完全一致,建议优先使用datasource.ts(TypeORM新版本推荐配置方式),删除或注释ormConfig.json的冗余配置,避免双重配置导致加载冲突。
内容的提问来源于stack exchange,提问作者UTHAYA KUMAR
相关产品推荐
相关产品推荐

