sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué no se ejecuta mi secuencia de comandos docker-entrypoint-initdb.d (como se especifica en docker-compose.yml) para inicializar una nueva instancia de MySQL?

El diablo se esconde en los detalles...

Tienes una definición doble de root en su env vars. root el usuario se crea de forma predeterminada con la contraseña de MYSQL_ROOT_PASSWORD . Luego solicita crear un segundo usuario "normal"... con exactamente el mismo nombre y contraseña (es decir, con MYSQL_USER y MYSQL_PASSWORD )

Si observa detenidamente su registro de inicio, verá un error

db_1       | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'

En realidad, esto detiene el procesamiento posterior de sus archivos de inicio en docker-entrypoint-initdb.d y continúa con el resto del proceso de inicio de la imagen (es decir, reiniciar mysql después de la inicialización en el servidor temporal).

Simplemente suelte MYSQL_USER y MYSQL_PASSWORD en sus vars env, o establezca un usuario diferente a root e inmediatamente verá sus archivos de inicio procesados ​​(no olvide vaciar su directorio de datos nuevamente).