Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

274
Views
Mysql no se inicia en un contenedor docker en MacOS después de la actualización de docker

Acabo de actualizar a Docker Desktop 2.4 en MacOS, desde la versión 2.3. De repente, ninguno de mis contenedores mysql se iniciará. Los registros muestran esto como la razón:

 Different lower_case_table_names settings for server ('2') and data dictionary ('0'). Data Dictionary initialization failed. Aborting

Los archivos de la base de datos están montados en un volumen en mi máquina host, de modo que persisten entre reinicios.

Finalmente descubrí por qué. Publicar para responder.

over 4 years ago · Santiago Trujillo
5 answers
Answer question

0

Otra opción es crear un volumen APFS que distinga entre mayúsculas y minúsculas mediante la Utilidad de disco.

Agregar APFS al contenedor Muestra que se comparte el almacenamiento entre los volúmenes APFS

A diferencia de una partición, es posible compartir el espacio libre, por lo que no debe preocuparse por reservar suficiente espacio para ejecutar su base de datos.

Luego cree un enlace simbólico desde su proyecto a su volumen sensible a mayúsculas y minúsculas.

 cd ~/my-project ln -s /Volumes/MySQL/project-db mysql
over 4 years ago · Santiago Trujillo Report

0

La configuración lower_case_table_names le dice a mysql cómo almacenar y comparar nombres de tablas. Si el sistema de archivos en el que se almacena la base de datos no distingue entre mayúsculas y minúsculas, lo obligará a usar lower_case_table_names=2 .

El sistema de archivos de MacOS no distingue entre mayúsculas y minúsculas. Hasta Docker Desktop 2.4, el contenedor mysql aparentemente no sabía que el sistema de archivos subyacente no distingue entre mayúsculas y minúsculas y estableció lower_case_table_names=0 . Sin embargo, desde que se actualizó a Docker 2.4, Docker aparentemente es más inteligente acerca de cómo monta los volúmenes. Entonces, el contenedor se da cuenta de que se está ejecutando en un sistema de archivos que no distingue entre mayúsculas y minúsculas y fuerza lower_case_table_names=2 . El problema es que no puede cambiar el valor de lower_case_table_names después de inicializar la base de datos. Y dado que el diccionario de datos se inicializó con lower_case_table_names=0 , no podrá inicializarse con el servidor establecido en lower_case_table_names=2 .

La única solución que he encontrado es:

  1. Cambiar a Docker Desktop 2.3
  2. Copia de seguridad de toda la base de datos
  3. Actualizar a Docker 2.4
  4. Elimine el volumen que almacena la base de datos.
  5. Reinicialice la base de datos.
  6. Restaurar la base de datos desde la copia de seguridad.

ACTUALIZACIÓN: consulte esta respuesta a continuación para obtener una mejor solución. Aparentemente no hay necesidad de bajar de categoría. En su lugar, puede deshabilitar "gRPC Fuse para compartir archivos", hacer una copia de seguridad de la base de datos, volver a habilitar gRPC fuse, eliminar la carpeta de datos de su base de datos y restaurar la base de datos desde la copia de seguridad.

over 4 years ago · Santiago Trujillo Report

0

Con la última ventana acoplable, puede deshabilitar gRPC Fuse para compartir archivos. (la configuración de gRPC Fuse está causando este problema, es incompatible con el diccionario de datos de 0)

ventana acoplable de captura de pantalla

Esto soluciona el problema... Puede detenerse aquí si está satisfecho, pero para usar el nuevo sistema de archivos puede:

  • Deshabilitar esta casilla de verificación
  • Iniciar el contenedor
  • Volcar la base de datos
  • Habilite esta casilla de verificación
  • Asegúrese de que su carpeta de datos esté vacía (para que mysql cree un nuevo diccionario de datos)
  • Importar la base de datos volcada

ACTUALIZAR

Desde la versión 2.5, la configuración se ha movido a la página de 'características experimentales':

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report

0

Docker eliminó esta opción en las actualizaciones recientes, logré resolver este problema en Windows al hacer esto

Ejecute un shell como administrador:

vaya a su volumen mysql montado localmente y ejecute

 fsutil file setCaseSensitiveInfo ./ enable

créditos a https://github.com/docker/for-win/issues/12384#issuecomment-972845031

over 4 years ago · Santiago Trujillo Report

0

Como solución en el sistema operativo Windows, deshabilité WSL en Docker Desktop y me ayudó

Actualizar Después de las últimas actualizaciones de Docker Desktop, me vi obligado a configurar el directorio de Windows con datos de DB como sensible a mayúsculas y minúsculas

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!