Tidak Dapat Menyambung Django ke MySQL dalam Docker Menggunakan Docker-Compose
Mencuba untuk mewujudkan sambungan antara Django dan MySQL dalam persekitaran Docker menggunakan docker-compose boleh mengakibatkan ralat berikut:
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'mariadb55\' (111 "Connection refused")')
Penyelesaian
Untuk menyelesaikan isu ini, adalah penting untuk memastikan port dan hos yang dinyatakan dalam Fail tetapan Django sejajar dengan konfigurasi sebenar dalam fail docker-compose.yml.
Langkah-Langkah untuk Membetulkan Isu:
Tetapkan Hos kepada 'db' dan Port kepada '3306' dalam tetapan.py:
Laraskan Fail docker-compose.yml:
Aktifkan Cek untuk Port Terbuka:
Contoh docker-compose Fail .yml:
version: '3' services: db: image: mariadb:5.5 restart: always environment: - MYSQL_HOST=localhost - MYSQL_PORT=3306 - MYSQL_ROOT_HOST=% - MYSQL_DATABASE=test - MYSQL_USER=belter - MYSQL_PASSWORD=belter_2017 - MYSQL_ROOT_PASSWORD=123456_abc volumes: - /home/belter/mdbdata/mdb55:/var/lib/mysql ports: - "3302:3306" web: image: onlybelter/django_py35 command: /bin/sh -c "python check_db.py --service-name mysql --ip db --port 3306" volumes: - .:/djcode
Petua Tambahan:
Dengan mengikuti langkah ini, anda boleh mewujudkan sambungan yang stabil antara Django dan MySQL dalam persekitaran Docker menggunakan docker-compose.
Atas ialah kandungan terperinci Berikut ialah tajuk berasaskan soalan yang menangkap intipati artikel: Mengapa Apl Django Saya Tidak Boleh Bersambung ke MySQL dalam Docker Menggunakan Docker-Compose? Berikut adalah beberapa variasi lain: * Django ke MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!