在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
參考來源: