sql >> Databasteknik >  >> RDS >> Mysql

Hur lägger man till ett startskript till en mysql docker-behållare?

Du måste skapa användare via MYSQL_USER , MYSQL_PASSWORD env vars och använd volym /docker-entrypoint-initdb.d för att mappa katalogen med dina startskript (.sh , .sql , .sql.gz )

docker run -p 3306:3306 --name mysql-server \ 
 -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \
 -v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \
 -e MYSQL_ROOT_PASSWORD=root \
 -e MYSQL_USER=youruser \
 -e MYSQL_PASSWORD=youruserpassword \
 -d mysql:latest

Förklaring från:https://hub.docker.com/_/mysql/

MYSQL_USER, MYSQL_PASSWORD
Dessa variabler är valfria och används tillsammans för att skapa en ny användare och ställa in användarens lösenord. Denna användare kommer att beviljas superanvändarbehörigheter (se ovan) för databasen som anges av MYSQL_DATABASE variabel. Båda variablerna krävs för att en användare ska kunna skapas.

Initiera en ny instans
När en behållare startas för första gången kommer en ny databas med det angivna namnet att skapas och initieras med de angivna konfigurationsvariablerna. Dessutom kommer det att köra filer med tilläggen .sh , .sql och .sql.gz som finns i /docker-entrypoint-initdb.d . Filerna kommer att köras i alfabetisk ordning. Du kan enkelt fylla i dina mysql-tjänster genom att montera en SQL-dump i den katalogen och tillhandahåll anpassade bilder med bidragsdata. SQL-filer kommer som standard att importeras till databasen som anges av MYSQL_DATABASE variabel.




  1. Påverkar begränsningar av främmande nyckel frågetransformationer i Oracle?

  2. Hur fyller man i databasen bara en gång före @Test-metoder i vårtestet?

  3. Omvända effekten av `mysqli_real_escape_string`

  4. Användarinmatningar, rengör och sanera innan du skickar till db