Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS Elastic Beanstalk中的mysqlclient安装错误_Mysql_Amazon Ec2_Amazon Elastic Beanstalk - Fatal编程技术网

AWS Elastic Beanstalk中的mysqlclient安装错误

AWS Elastic Beanstalk中的mysqlclient安装错误,mysql,amazon-ec2,amazon-elastic-beanstalk,Mysql,Amazon Ec2,Amazon Elastic Beanstalk,我正在AWS Elastic Beanstalk上部署django with mysql应用程序,因此需要mysqlclient库mysqlclient需要安装python3-devel和mysql-devel包,所以我有它的自定义配置文件01_-packages.config: packages: yum: python3-devel: [] mysql-devel: [] packages: yum: python3-devel: [] mari

我正在AWS Elastic Beanstalk上部署django with mysql应用程序,因此需要
mysqlclient
mysqlclient
需要安装
python3-devel
mysql-devel
包,所以我有它的自定义配置文件
01_-packages.config

packages: 
  yum:
    python3-devel: []
    mysql-devel: []
packages: 
  yum:
    python3-devel: []
    mariadb-devel: []
部署失败,日志文件
/var/log/cfn init.log
(在Beanstalk日志中提到)显示错误:

2020-05-31 02:17:37,565 [INFO] -----------------------Starting build-----------------------
2020-05-31 02:17:37,572 [INFO] Running configSets: Infra-EmbeddedPreBuild
2020-05-31 02:17:37,575 [INFO] Running configSet Infra-EmbeddedPreBuild
2020-05-31 02:17:37,579 [INFO] Running config prebuild_0_doyouknow
2020-05-31 02:17:41,831 [ERROR] mysql-devel is not available to be installed
2020-05-31 02:17:41,831 [ERROR] Error encountered during build of prebuild_0_doyouknow: Yum does no
t have mysql-devel available for installation
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 229, in build
    changes['packages'][manager] = CloudFormationCarpenter._packageTools[manager]().apply(packages,
 self._auth_config)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/rpm_tools.py", line 74, in apply
    raise ToolError("Yum does not have %s available for installation" % pkg_spec)
ToolError: Yum does not have mysql-devel available for installation
2020-05-31 02:17:41,834 [ERROR] -----------------------BUILD FAILED!------------------------
但是,我尝试通过
yum-install-mysql-devel
在我的Ec2实例上手动安装它,并且安装成功

我的python版本是3.7,我的
requirements.txt
文件内容是:

asgiref==3.2.7
Django==3.0.5
django-cors-headers==3.2.1
django-dotenv==1.4.2
django-social-share==1.4.0
mysqlclient==1.4.6
numpy==1.18.4
pandas==1.0.3
Pillow==7.1.1
python-dateutil==2.8.1
pytz==2019.3
six==1.14.0
sqlparse==0.3.1
xlrd==1.2.0

解决了我已经用
mariadb-devel
替换了
mysql-devel
,并且它成功地工作了,然后我能够安装
mysqlcient

我的新
01\u packages.config

packages: 
  yum:
    python3-devel: []
    mysql-devel: []
packages: 
  yum:
    python3-devel: []
    mariadb-devel: []
我不知道它的根本原因,但我这么做是因为我注意到通过
yum-install-mysql-devel
手动安装
mysql-devel
实际上是在安装
mariadb-devel

下面是我的ec2实例发布详细信息。可能是因为新的AmazonLinuxRelease2

$ cat /etc/*-release*
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)
cpe:2.3:o:amazon:amazon_linux:2

您的cfn-init.log日志中是否有更多内容显示如何调用yum?@danblack不幸的是,没有,它只是重复了相同的部分。我做了一些调查,事实上,旧的Amazon Linux AMI for Elastic Beanstalk似乎包括mysql,但Amazon Linux 2 AMI for Elastic Beanstalk没有。因此,正如Yasser所说,从旧平台升级到新平台时,似乎必须向配置文件中添加正确的包。我只需要mariadb devel。