Node.js连接MySQL查询返回500 Internal Server Error问题求助
问题排查与解决方案
1 优先验证数据库连接配置
- host:如果MySQL服务和你的后端服务部署在同一台机器,
127.0.0.1是正确配置,若为远程数据库请替换为对应远程服务的IP地址 - 数据库名:你当前配置中填写的
Recomend an Adventure存在拼写风险(正确拼写为Recommend),请核对MySQL中实际的数据库名,确保大小写、空格、拼写完全匹配 - 账号权限:确认
suggesteventuser用户拥有对应数据库的访问权限,且允许从127.0.0.1地址登录,密码和实际配置完全一致 - 端口:确认MySQL服务实际监听端口是否为默认的3306,若有修改请替换为实际端口
2 添加连接状态监听排查问题
你当前的代码没有监听数据库连接的错误状态,添加以下代码可以直接在服务端控制台打印连接失败的具体原因:
Connection.connect((err) => { if (err) { console.error('数据库连接失败具体报错: ', err); return; } console.log('数据库连接正常'); });
3 查看服务端错误日志定位问题
你在路由的catch逻辑中已经打印了错误信息,请直接查看后端服务控制台的输出内容,不同错误对应不同解决方向:
- 报错
ER_ACCESS_DENIED_ERROR:账号密码错误,或用户没有对应登录权限 - 报错
ER_BAD_DB_ERROR:配置的数据库名不存在 - 报错
ECONNREFUSED:MySQL服务未启动,或host、端口配置错误 - 报错为SQL语法相关:检查
db.Blogs.all()方法内的SQL语句书写是否正确
4 额外优化建议
你当前使用的mysql依赖已经停止维护多年,建议替换为仍在活跃维护的mysql2依赖,二者API基本兼容,替换后稳定性和兼容性更好。
内容的提问来源于stack exchange,提问作者Wayne
相关产品推荐
相关产品推荐

