Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Membetulkan \"OperationalError: Tidak dapat menyambung ke pelayan MySQL\" Apabila Menggunakan Django dan Docker?

Bagaimana untuk Membetulkan \"OperationalError: Tidak dapat menyambung ke pelayan MySQL\" Apabila Menggunakan Django dan Docker?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 19:35:30513semak imbas

How to Fix

Menyambung Django ke MySQL dalam Docker

Apabila cuba menyambungkan Django ke MySQL dalam persekitaran Docker menggunakan Compose, anda mungkin menghadapi "OperationalError : Tidak dapat menyambung ke pelayan MySQL" isu. Ralat ini biasanya timbul disebabkan oleh konfigurasi kontena atau tetapan pangkalan data yang salah.

Menyelesaikan Isu

Parameter yang betul untuk mewujudkan sambungan antara Django dan MySQL dalam Docker ialah:

  • Tetapkan 'HOST': 'db' dalam fail settings.py Django.
  • Gunakan 3306 sebagai nombor port dalam settings.py.
  • Tetapkan persekitaran MYSQL_PORT pembolehubah kepada 3306 dalam docker-compose.yml.
  • Kekalkan pembolehubah persekitaran MYSQL_HOST sebagai localhost.

Untuk memastikan anda berjaya disambungkan, anda boleh menggunakan arahan berikut dalam anda fail docker-compose.yml:

  web:
    image: onlybelter/django_py35
    command: /bin/sh -c "python check_db.py --service-name mysql --ip db --port 3306"
    volumes:
      - .:/djcode

Arahan ini menjalankan skrip yang menyemak sama ada port MySQL dibuka. Jika ya, skrip akan memaparkan mesej yang menunjukkan kejayaan.

Petua Tambahan

  • Untuk menyambung ke bekas MySQL secara langsung, gunakan mysql -h 127.0. 0.1 -P 3302 -u root -p dalam cangkerang anda.
  • Jika anda mempunyai berbilang bekas Django berjalan, pastikan anda menggunakan nombor port yang berbeza untuk setiap satu untuk mengelakkan konflik.
  • Anda boleh menggunakan Perintah log docker-compose Docker untuk menyemak sebarang kemungkinan ralat atau amaran yang berkaitan dengan sambungan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \"OperationalError: Tidak dapat menyambung ke pelayan MySQL\" Apabila Menggunakan Django dan Docker?. 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