在Ubuntu系统中排查Node.js日志中的数据库连接问题,可按以下步骤进行:
检查数据库服务状态
确保数据库服务(如MySQL)已启动,使用命令:
sudo systemctl status mysql # 查看服务状态
sudo systemctl start mysql # 启动服务(若未运行)
验证数据库配置参数
检查Node.js代码中的连接配置(主机、端口、用户名、密码、数据库名)是否正确,可通过数据库管理工具(如MySQL Workbench)测试连接。
排查防火墙与网络连通性
sudo ufw allow 3306/tcp # 开放端口
sudo ufw reload # 重新加载防火墙规则
ping或telnet测试Node.js服务器与数据库服务器的网络连通性。确认数据库用户权限
登录数据库,检查用户是否有连接权限:
SHOW GRANTS FOR 'your_username'@'localhost';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
检查数据库驱动与连接池配置
mysql或mysql2包),并在代码中正确引入。connectionLimit等参数配置合理,避免连接耗尽。查看详细日志与错误信息
journalctl查看系统日志,或使用Node.js日志库(如Winston)记录的错误日志,定位具体错误原因(如超时、认证失败等)。connection.connect(err => {
if (err) console.error('连接失败:', err);
});
重启相关服务
完成配置修改后,重启Node.js应用和数据库服务:
sudo systemctl restart mysql
# 重启Node.js应用(根据实际部署方式,如pm2)
pm2 restart your-app
参考来源: