ubuntu

Node.js日志中数据库连接问题怎么查

小樊
37
2025-11-24 05:40:27
栏目: 编程语言

Node.js 日志定位数据库连接问题的实操流程

一、先定位日志中的错误类型

二、按错误类型对照排查

错误现象或关键词 优先检查 快速修复
ECONNREFUSED / 目标主机主动拒绝 数据库是否启动、监听端口是否正确、云安全组/本机防火墙是否放行 启动数据库;如在 Ubuntusudo systemctl start mysql;开放端口(如 sudo ufw allow 3306/tcp);核对应用配置的 host/port
ETIMEDOUT / 连接超时 网络连通性、端口可达性、数据库负载 ping/telnet <host> <port>nc -vz <host> <port> 测试;检查安全组/防火墙;必要时优化数据库或网络
ER_ACCESS_DENIED_ERROR / Authentication failed 用户名、密码、连接来源主机、权限是否匹配 在数据库中核对用户与来源主机:SELECT User,Host FROM mysql.user; 必要时执行授权:GRANT ALL PRIVILEGES ON db.* TO 'user'@'host' IDENTIFIED BY 'pwd'; FLUSH PRIVILEGES;
ER_NOT_SUPPORTED_AUTH_MODE MySQL 8.0 默认 caching_sha2_password 与旧驱动不兼容 方案A:改用支持该插件的驱动(如 mysql2);方案B:将用户认证方式改为 mysql_native_passwordALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'pwd'; FLUSH PRIVILEGES;
MongoNetworkError / wire version 不兼容 MongoDB 与 Node.js 驱动版本不匹配 升级 MongoDBNode.js 驱动/Mongoose 至兼容版本(参考官方兼容矩阵)
连接池耗尽、Too many connections 连接池大小、未释放连接、连接泄漏 调整连接池上限(如 connectionLimit)、确保查询后 release()/end()、增加超时与回收策略
SSL/TLS 握手失败 SSL 配置、证书路径、CA 信任链 在连接选项中正确设置 ssl: trueca/cert/key,或临时关闭 SSL 验证用于排查(仅测试环境)

三、环境与网络层面的核验

四、代码与配置层面的检查

五、5 分钟应急清单

0
看了该问题的人还看了