Laradock MySQL container exits(0) - Different lower_case_table_names settings for server ('2') and data dictionary ('0')
Asked Answered
O

3

5

After installing Docker and Laradock on my Mac I'm trying to start the docker containers using the command:

docker-compose up -d nginx mysql phpmyadmin

I get the output:

Starting laradock_mysql_1            ... done
Starting laradock_docker-in-docker_1 ... done
Starting laradock_phpmyadmin_1       ... done
Starting laradock_workspace_1        ... done
Starting laradock_php-fpm_1          ... done
Starting laradock_nginx_1            ... done

Seems fine, but for some reason MySQL is crashing. When I try to start the container again I get the following message:

mysql_1                | 2020-10-01T10:19:52.124915Z 1 [Warning] [MY-012579] [InnoDB] fallocate(25, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
mysql_1                | 2020-10-01T10:19:52.143672Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysql_1                | 2020-10-01T10:19:52.159801Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('2') and data dictionary ('0').
mysql_1                | 2020-10-01T10:19:52.160778Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
mysql_1                | 2020-10-01T10:19:52.161607Z 0 [ERROR] [MY-010119] [Server] Aborting
mysql_1                | 2020-10-01T10:19:52.795909Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.21)  MySQL Community Server - GPL.

I tried adding "command: --lower_case_table_names=0" to my docker-compose file, but that does not seem to help.

MySQL crashes with:

mysql_1                | 2020-10-01 10:21:28+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
mysql_1                |        command was: mysqld --lower_case_table_names=0 --verbose --help
mysql_1                |        2020-10-01T10:21:28.547104Z 0 [ERROR] [MY-010158] [Server] The server option 'lower_case_table_names' is configured to use case sensitive table names but the data directory is on a case-insensitive file system which is an unsupported combination. Please consider either using a case sensitive file system for your data directory or switching to a case-insensitive table name mode.
mysql_1                | 2020-10-01T10:21:28.549273Z 0 [ERROR] [MY-010119] [Server] Aborting
Osiris answered 1/10, 2020 at 10:22 Comment(0)
L
5

This was most likely caused by the docker update to 2.4. See:

Mysql not starting in a docker container on MacOS after docker update

Littoral answered 1/10, 2020 at 12:41 Comment(0)
A
12

My solution:

cmd

fsutil file setCaseSensitiveInfo "C:\Users\XXXXX\.laradock\data\mysql"

This will change lower_case_table_names for data dictionary from ('0') to ('2') in Windows 10. XXXXX - your username in Windows 10.

then:

docker-compose up mysql
Anticatalyst answered 9/10, 2020 at 13:12 Comment(2)
Thank you for this solution!Repetitious
Thanks so much, that was realy helpfulPuglia
L
5

This was most likely caused by the docker update to 2.4. See:

Mysql not starting in a docker container on MacOS after docker update

Littoral answered 1/10, 2020 at 12:41 Comment(0)
M
0

The solution madx provided works. And if got an error message says that the target folder is not empty and therefore cannot make the folder case-sensitive, just 1.move the files and subfolders out of the target folder; 2.make the target folder case-sensitive; 3.move the files and subfolders back to the target folder. Everything would be OK.

Mohamed answered 23/9, 2021 at 16:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.