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

डॉकर कंपोज़ में MySql डेटाबेस को कैसे इनिट करें?

अपनी sql फ़ाइलों को केवल पहली बार में लोड करने के लिए:

आप नीचे दी गई कंपोज़ फ़ाइल का उपयोग कर सकते हैं

version: '2.1'
services:

  usermanagement-service:
    build: ./UserManagementService
    restart: on-failure
    ports:
      - "7778:7778"
    depends_on:
      mysqldb:
        condition: service_healthy

  mysqldb:
    image: mysql
    volumes:
      - ./mysql-data:/var/lib/mysql
      - ./mysql-init-files:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: userdb
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testuser
    ports:
      - "3600:3306"
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

आपको अपना data.sql place डालना होगा और schema.sql ./docker-entrypoint-initdb.d . के अंतर्गत फ़ाइलें Volumes . का उपयोग कर निर्देशिका अधिक जानकारी के लिए .

इस फ़ोल्डर में SQL फ़ाइलें केवल तभी लोड होंगी जब DB की डेटा निर्देशिका खाली हो (db सेवा का पहला रन) . (यानी) आपके मामले में ./mysql-data फ़ोल्डर खाली होना चाहिए

आपकी दूसरी समस्या के लिए:

wait-for-it.sh का उपयोग करने के बजाय , आप healthcheck . का उपयोग कर सकते हैं और service_healthy . यहां usermanagement-service एक बार शुरू हो जाएगा mysqldb ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] को सफलतापूर्वक निष्पादित करता है निर्दिष्ट अंतराल में। हेल्थचेक और डिपेंड्स_ऑन के बारे में अधिक जानकारी के लिए, यहां ए> .

test मिल गया यहां से कमांड करें ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. समूह का उपयोग करते समय NULL के बीच भेद करें ... रोलअप के साथ

  2. MySQL उपयोगकर्ता बनाते समय होस्ट के लिए % का उपयोग करना

  3. जेडीबीसी स्टेटमेंट के माध्यम से डीडीएल को क्रियान्वित करने में त्रुटि हाइबरनेट:

  4. नोड जेएस के साथ एक्सेल से MySQL में डेटा आयात करें

  5. JQuery के माध्यम से AJAX का उपयोग करके MySQL परिणाम पोस्ट करें