Selesaikan masalah sambungan antara Django Elastic Beanstalk dan RDS MySQL
P粉716228245
2023-08-28 20:40:41
<p>Saya cuba menyambungkan Django Elastic Beanstalk saya kepada RDS MySQL saya. Django saya berfungsi dengan baik dengan RDS MySQL saya melalui localhost, tetapi apabila saya cuba memuat naik Django saya ke Elastic Beanstalk saya mendapat ralat "Aplikasi penyebaran gagal" dan AWS menunjukkan ralat berikut. Projek saya mempunyai mysqlclient dalam requirements.txt seperti ditunjukkan di sini: </p>
<p>https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-rds.html</p>
<p>Menurut halaman, ini sepatutnya mencukupi. Saya sudah tentu cuba mencari isu yang sama, tetapi setakat ini tidak berjaya. Saya perasan bahawa banyak soalan menyebut keperluan untuk mempunyai fail packages.config dalam folder .ebextensions dan saya mencuba banyak cadangan tersebut tanpa berjaya. Adakah ini masalah? Mengapa ini tidak disebut pada halaman AWS? </p>
<pre class="brush:php;toolbar:false;">× python setup.py egg_info tidak berjaya dijalankan.
│ kod keluar: 1
╰─>
/bin/sh: mysql_config: arahan tidak dijumpai
/bin/sh: mariadb_config: arahan tidak dijumpai
/bin/sh: mysql_config: arahan tidak dijumpai
Traceback (panggilan terbaharu terakhir):
Fail "<rentetan>", baris 2, dalam <modul>
Fail "<pip-setuptools-caller>", baris 34, dalam <modul>
Fail "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup.py", baris 15, dalam <modul>
metadata, pilihan = get_config()
Fail "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", baris 70, dalam get_config
libs = mysql_config("libs")
Fail "/tmp/pip-install-r0dz9d2g/mysqlclient_f2b5c53e43a648c284b06f7af63d9855/setup_posix.py", baris 31, dalam mysql_config
naikkan OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config tidak ditemui
mysql_config --version
mariadb_config --version
mysql_config --libs
[tamat output]</pre></p>
Jawab soalan anda sendiri. Kemudian saya bertanya soalan yang sama AWS Elastic Beanstalk RDS MacOS mysqlclient tidak berfungsi dan mendapat bantuan.
Jawapannya memang fail packages.config, fail yang perlu dipasang melalui yum (sila rujuk pautan di atas). Terdapat masalah lain dalam kod saya, tetapi saya mendapat ralat yang sama seperti di atas, walaupun packages.config ditetapkan dengan betul. Saya menemui isu ini kerana saya cuba menetapkannya kembali ke pangkalan data SQLite dan memuat naik ke Elastic Beanstalk, tetapi ia tidak berjaya. (Maaf, saya tidak ingat kesilapan yang saya dapat, saya gugup, saya rasa ia adalah ralat "111: Sambungan ditolak".)
Cara yang saya lakukan adalah dengan memadam semua fail konfigurasi dan mulakan semula dengan projek siap biasa dan ikuti tutorial (seperti yang saya lakukan sebelum ini): 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
Dari situ, saya menambah fail packages.config dalam folder .ebextensions saya dengan kod berikut...
...seperti yang dinyatakan dalam soalan saya yang lain yang dipautkan di atas, dan di sini: ralat pemasangan mysqlclient dalam AWS Elastic Beanstalk
Saya juga memerlukan gunicorn dan Procfile, tetapi saya telah menyelesaikan masalah ini sebelum ini, tetapi jika anda berada di sini kerana masalah dengan Elastic Beanstalk dan RDS, ia patut disebut juga.
Saya juga tidak faham sama ada saya boleh menggunakan yum dalam fail packages.config jika saya tidak mempunyai yum pada komputer saya, terutamanya kerana saya menggunakan MacOS dan menggunakan yum pada MacOS bukanlah perkara biasa. Soalan ini dijawab dalam soalan lain yang saya pautkan di atas, dan jawapannya ialah anda tidak perlu memasang yum pada mesin anda dalam kes ini kerana yum digunakan oleh pelayan Amazon Linux 2 Elastic Beanstalk dalam kes ini.