You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目通过EB CLI部署AWS ElasticBeanstalk时mysqlclient相关报错求助

问题排查与解决步骤

1. 获取部署日志定位具体错误

无需登录EC2实例,直接在Elastic Beanstalk控制台即可获取完整日志:

  • 进入AWS Elastic Beanstalk控制台,打开对应应用的环境详情页
  • 左侧导航栏选择「日志」选项
  • 点击右上角「请求全部日志」,等待生成后下载压缩包,包内即可找到/var/log/cfn-init.log文件

2. 修复容器命令执行错误

你当前django.config中的容器命令写死了虚拟环境路径,而Amazon Linux 2平台的Python虚拟环境临时路径会随部署变更,硬编码路径会导致命令执行失败,替换为以下配置即可:

option_settings:
    aws:elasticbeanstalk:container:python:
        WSGIPath: awsdeploy.wsgi:application

    aws:elasticbeanstalk:environment:proxy:staticfiles:
        /static: static

container_commands:
    01_collectstatic:
        command: "$PYTHONPATH/bin/python manage.py collectstatic --noinput --clear"
    02_migrate:
        command: "$PYTHONPATH/bin/python manage.py migrate --noinput"
        leader_only: true

3. 额外配置校验

如果修改容器命令后仍报错,检查以下配置项:

  • 确保RDS实例与EB环境处于同一个VPC,且RDS安全组已放通EB环境所属安全组的3306端口访问权限
  • Django的数据库配置需读取EB平台注入的RDS环境变量,不要硬编码连接信息:
import os
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ.get('RDS_DB_NAME'),
        'USER': os.environ.get('RDS_USERNAME'),
        'PASSWORD': os.environ.get('RDS_PASSWORD'),
        'HOST': os.environ.get('RDS_HOSTNAME'),
        'PORT': os.environ.get('RDS_PORT'),
    }
}
  • 你当前的packages.config配置正确,requirements.txt中保留无版本号的mysqlclient即可,无需额外调整

内容的提问来源于stack exchange,提问作者rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:27:04