Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

docker-entrypoint-initdb में MySQL स्क्रिप्ट निष्पादित नहीं की जाती हैं

आपको data_volume को साफ़ करना चाहिए कंटेनर चलाने से पहले और sql फ़ाइलें निष्पादित की जाएंगी। यह वॉल्यूम data_volume कमांड का उपयोग करके हटाया जा सकता है:docker volume rm data_volume

आपकी समस्या का मूल कारण docker-entrypoint.sh . में पाया जा सकता है . जब आप एक mysql कंटेनर चलाते हैं, तो यह mysql निर्देशिका की जाँच करता है /var/lib/mysql मौजूद है या नहीं। यदि निर्देशिका मौजूद नहीं है (इसे पहली बार चलाएँ), तो यह आपकी SQL फ़ाइलों को चलाएगी।

    if [ ! -d "$DATADIR/mysql" ]; then
        //Some other logic here

        for f in /docker-entrypoint-initdb.d/*; do
            case "$f" in
                *.sh)     echo "$0: running $f"; . "$f" ;;
                *.sql)    echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;;
                *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
                *)        echo "$0: ignoring $f" ;;
            esac
            echo
        done 

आप Dockerfile स्रोत



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LINQ से SQL कई टेबल बाएँ बाहरी जुड़ाव

  2. एक ही आईडी की कई पंक्तियों के लिए अलग-अलग मान चुनें

  3. MySQL में JSON डेटा कैसे स्टोर करें

  4. MySQL में लोअरकेस अक्षरों को अपरकेस में कैसे बदलें

  5. MySQL सेटिंग्स को सहेजना