Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zainicjować bazę danych MySql w Docker Compose

Do ładowania plików sql tylko przy pierwszym uruchomieniu:

Możesz użyć poniższego pliku do tworzenia

Wersja
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

Musisz umieścić swój data.sql i schema.sql pliki w ./docker-entrypoint-initdb.d katalog przy użyciu Volumes więcej informacji .

Pliki SQL w tym folderze zostaną załadowane tylko wtedy, gdy katalog danych DB jest pusty (pierwsze uruchomienie usługi db) . (tj.) w twoim przypadku ./mysql-data folder powinien być pusty

W przypadku drugiego problemu:

Zamiast używać wait-for-it.sh , możesz użyć healthcheck i service_healthy . Tutaj usermanagement-service zostanie uruchomiony raz mysqldb pomyślnie wykonuje ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] w określonym przedziale. Aby uzyskać więcej informacji na temat kontroli stanu zdrowia i depend_on, zapoznaj się tutaj .

Mam test polecenie z tutaj .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd składni z emulacją tworzenia użytkownika, jeśli nie istnieje

  2. Wygląda na to, że nie mogę EDYTOWAĆ/MODYFIKOWAĆ mojej tabeli php według identyfikatora

  3. Tworzenie linku z elementu osi czasu Wykresu Google

  4. Wycofanie transakcji Mysql w przypadku niepowodzenia aktualizacji

  5. mysql zastępuje znaki akcentowane