Mysql
 sql >> Datenbank >  >> RDS >> Mysql

'Verbindung zum MySQL-Server auf \'db\' Django-Restframework mit MySQL im Docker nicht möglich

Dies kann passieren, wenn Ihr Anwendungscontainer (web hier) beginnt, bevor Ihre Datenbank vollständig initialisiert ist.

Sie müssen warten, bis db Dienst gestartet wird (genauer gesagt bis mysql akzeptiert Verbindungen), bevor Sie Ihre Anwendung starten (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000 ).

Dafür können Sie wait-for-it.sh verwenden Skript (siehe https://docs.docker.com/compose/startup-order/ ), bevor Sie Ihre Python-Befehle ausführen. Alternativ könnten Sie eine Neustartrichtlinie in Ihrem web verwenden Dienst (https://docs.docker.com/compose/compose-file/ #restart_policy ), um Ihren Dienst automatisch neu zu starten (bis die Datenbank hochgefahren ist).