React项目迁移至AWS RDS后数据库交互异常问题求助
排查前端调用AWS RDS迁移后接口异常的步骤
修正前端请求目标
RDS是数据库实例,仅提供MySQL协议服务(默认端口3306),无法处理HTTP请求。你当前前端直接POST到RDS地址是核心错误,应该将请求URL改为部署后的Node.js后端服务地址(比如EC2实例IP、Elastic Beanstalk域名或API Gateway地址),后端内部负责连接RDS数据库。验证后端数据库连接配置
确认后端代码中已更新RDS的连接参数,即使控制台显示连接成功,也要核对配置是否正确:const mysql = require('mysql'); const db = mysql.createConnection({ host: 'dbmt.cqnwbmshskv1.us-east-1.rds.amazonaws.com', user: '你的RDS用户名', password: '你的RDS密码', database: '目标数据库名', port: 3306 // RDS MySQL默认端口 });检查CORS跨域配置
后端部署到AWS后,若前端在本地或其他域名运行,需确保Express配置了正确的CORS规则:const cors = require('cors'); // 允许前端域名访问,替换为你的前端实际地址 app.use(cors({ origin: 'http://localhost:3000' }));本地环境因同源策略不会触发CORS问题,但跨域场景下必须配置。
核对AWS安全组规则
- 后端服务所在实例(如EC2)的安全组需允许出站访问RDS的3306端口;
- RDS实例的安全组需允许后端服务的IP/安全组访问3306端口(已确认后端能连接可跳过,但建议复查);
- 后端服务的安全组需允许前端IP访问后端的HTTP端口(如3001)。
测试后端接口可用性
先用Postman或curl直接请求后端的/login接口,确认接口能正常响应(返回"login successful"或错误信息),排除后端本身的问题后再调试前端。确认前端请求URL的端口
若后端部署后使用默认HTTP端口(80)或HTTPS端口(443),URL无需加端口;若仍使用3001端口,需确保后端安全组开放该端口,且前端URL补充:3001。
内容的提问来源于stack exchange,提问作者Eddie Toledo
相关产品推荐
相关产品推荐

