無法使用Docker-Compose 在Docker 中將Django 連接到MySQL
嘗試使用Docker 環境中的Django 和MySQL docker-compose 可能會導致以下錯誤:
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'mariadb55\' (111 "Connection refused")')
解決方案
要解決此問題,請確保在docker-compose 中指定的連接埠和主機至關重要Django 設定檔與docker-compose.yml 檔案中的實際配置保持一致。
解決問題的步驟:
在settings.py中將主機設定為“db”,連接埠設定為“3306 」:
連結 Django 和資料庫服務時使用 db 作為主機。
向docker-compose.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
範例docker-compose .yml 檔案:
以上是這是一個基於問題的標題,它抓住了文章的精髓: 為什麼我的 Django 應用程式無法使用 Docker-Compose 連接到 Docker 中的 MySQL? 以下是一些其他變體: * Django 到 MySQL的詳細內容。更多資訊請關注PHP中文網其他相關文章!