Rumah  >  Artikel  >  pangkalan data  >  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

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

Linda Hamilton
Linda Hamiltonasal
2024-10-29 05:34:311065semak imbas

Here's a question-based title that captures the essence of the article:

Why Can't My Django App Connect to MySQL in Docker Using Docker-Compose? 

Here are some other variations:

* Django to MySQL in Docker: Troubleshooting Connection Errors with dock

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:

  1. Tetapkan Hos kepada 'db' dan Port kepada '3306' dalam tetapan.py:

    • 'HOST': 'db',
    • 'PORT': '3306 ',
  2. Laraskan Fail docker-compose.yml:

    • Pastikan port terdedah untuk perkhidmatan pangkalan data ialah 3306.
    • Gunakan db sebagai hos apabila memautkan Django dan perkhidmatan pangkalan data.
  3. Aktifkan Cek untuk Port Terbuka:

    • Tambahkan perintah tambahan pada docker-compose.yml untuk mengesahkan sama ada port yang ditentukan boleh diakses.

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:

  • Gunakan db sebagai hos apabila menyambung ke MySQL dari dalam bekas Django (menggunakan perintah mysql -h db -p ...).
  • Semak sama ada 3306 tersedia dengan menjalankan: nmap -p 3306 localhost.
  • Sahkan bahawa bekas Django dan pangkalan data berjalan dengan betul menggunakan : docker-compose ps.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn