温馨提示×

Ubuntu Node.js日志中数据库连接问题排查

小樊
61
2025-08-21 03:34:57
栏目: 编程语言

在Ubuntu系统中排查Node.js日志中的数据库连接问题,可按以下步骤进行:

  1. 检查数据库服务状态
    确保数据库服务(如MySQL)已启动,使用命令:

    sudo systemctl status mysql  # 查看服务状态  
    sudo systemctl start mysql   # 启动服务(若未运行)  
    
  2. 验证数据库配置参数
    检查Node.js代码中的连接配置(主机、端口、用户名、密码、数据库名)是否正确,可通过数据库管理工具(如MySQL Workbench)测试连接。

  3. 排查防火墙与网络连通性

    • 确保防火墙允许数据库端口(如MySQL默认3306)的通信:
      sudo ufw allow 3306/tcp  # 开放端口  
      sudo ufw reload          # 重新加载防火墙规则  
      
    • 使用pingtelnet测试Node.js服务器与数据库服务器的网络连通性。
  4. 确认数据库用户权限
    登录数据库,检查用户是否有连接权限:

    SHOW GRANTS FOR 'your_username'@'localhost';  
    GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'localhost';  
    FLUSH PRIVILEGES;  
    
  5. 检查数据库驱动与连接池配置

    • 确保已安装正确的数据库驱动(如MySQL需mysqlmysql2包),并在代码中正确引入。
    • 若使用连接池,确认connectionLimit等参数配置合理,避免连接耗尽。
  6. 查看详细日志与错误信息

    • 通过journalctl查看系统日志,或使用Node.js日志库(如Winston)记录的错误日志,定位具体错误原因(如超时、认证失败等)。
    • 在代码中添加错误处理逻辑,捕获并打印详细错误信息:
      connection.connect(err => {  
        if (err) console.error('连接失败:', err);  
      });  
      
  7. 重启相关服务
    完成配置修改后,重启Node.js应用和数据库服务:

    sudo systemctl restart mysql  
    # 重启Node.js应用(根据实际部署方式,如pm2)  
    pm2 restart your-app  
    

参考来源

0