解决Django Elastic Beanstalk与RDS MySQL连接问题
P粉716228245
P粉716228245 2023-08-28 20:40:41
[MySQL讨论组]

我正在尝试将我的Django Elastic Beanstalk连接到我的RDS MySQL。我的Django通过localhost与我的RDS MySQL工作正常,但是当我尝试将我的Django上传到Elastic Beanstalk时,我得到了“部署应用程序失败”的错误,并且AWS显示了以下错误。我的项目在requirements.txt中有mysqlclient,就像这里所示:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-rds.html

根据该页面,这应该足够了。我当然尝试过搜索类似的问题,但迄今为止没有成功。我注意到许多问题都提到需要在.ebextensions文件夹中有一个packages.config文件,我尝试了其中许多建议,但没有成功。这是问题吗?为什么AWS页面上没有提到这一点?

× python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      /bin/sh: mysql_config: command not found
      /bin/sh: mariadb_config: command not found
      /bin/sh: mysql_config: command not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup.py", line 15, in <module>
          metadata, options = get_config()
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", line 70, in get_config
          libs = mysql_config("libs")
        File "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", line 31, in mysql_config
          raise OSError("{} not found".format(_mysql_config_path))
      OSError: mysql_config not found
      mysql_config --version
      mariadb_config --version
      mysql_config --libs
      [end of output]

P粉716228245
P粉716228245

全部回复(1)
P粉777458787

回答自己的问题。稍后我问了一个类似的问题AWS Elastic Beanstalk RDS MacOS mysqlclient not working并得到了帮助。

答案确实是packages.config文件,通过yum安装所需的文件(请参考上面的链接)。我的代码中还有其他地方出了问题,但我得到的错误与上面的错误相同,尽管packages.config已经正确设置。我发现这个问题是因为我尝试将其设置回SQLite数据库并上传到Elastic Beanstalk,但它不起作用。(对不起,我不记得我得到了什么错误,我很紧张,我想是"111: Connection refused"错误。)

我让事情正常工作的方法是删除所有配置文件,然后从常规完成的项目重新开始,然后按照教程进行操作(就像我以前做的那样):https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-rds.html#python-rds-connect

从那里,我在我的.ebextensions文件夹中添加了一个packages.config文件,其中包含以下代码...

packages: 
  yum:
    python3-devel: []
    mariadb-devel: []

...正如我在上面链接的另一个问题中所提到的,以及这里:mysqlclient installation error in AWS Elastic Beanstalk

我还需要gunicorn和一个Procfile,但我之前已经解决了这个问题,但如果你因为Elastic Beanstalk和RDS的问题而来到这里,这也值得一提。

我还不明白如果我在我的计算机上没有yum,是否可以在packages.config文件中使用yum,特别是因为我使用的是MacOS,而在MacOS上使用yum并不常见。这个问题在我上面链接的另一个问题中得到了回答,答案是在这种情况下你不需要在你的计算机上安装yum,因为yum在这种情况下是由Elastic Beanstalk的Amazon Linux 2服务器使用的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号