почему контейнер с БД падает?

Рейтинг: 0Ответов: 0Опубликовано: 28.05.2023

И так, я продолжаю предпринимать попытки вкатиться в докер. На этот раз возникли трудности с БД, а именно с контейнером, в docker-compose.yml он выглядит так и на windows всё работает исправно:

  db:
    image: mysql:latest
    restart: always
    volumes:
      - ./tmp/db:/var/lib/mysql
    environment:
      MYSQL_DATABASE: laradoc
      MYSQL_ROOT_PASSWORD: root 
    ports:
      - 8228:3306
    command: --lower_case_table_names=2 mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci 
    container_name: project_db

но я пытаюсь начать проект на laravel, а потому мне приходится переносить проект на linux, делаю это я с помощью wsl2. И вот тут уже начинаются проблемы, потому как после того, как я поднимаю контейнер, контейнер с базой работает пару секунд и падает. Вот, собственно его логи:

2023-05-28 22:14:35 2023-05-28T18:14:35.694565Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('2').

2023-05-28 22:14:35 2023-05-28T18:14:35.694778Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

2023-05-28 22:14:35 2023-05-28T18:14:35.694822Z 0 [ERROR] [MY-010119] [Server] Aborting

Из них я понял, что настройки регистра имен таблиц для сервера MySQL и словаря данных не совпадают. Нашёл в интернете несколько вариантов, таких как например вручную включить регистрозависимость в папке ./tmp/db с помощью команды fsutil.exe file setCaseSensitiveInfo ./ enable или прописать command: --lower_case_table_names=2, но все они не сработали.

Подскажите, пожалуйста, что я могу сделать со всем этим. С меня как обычно огромное спасибо.

UPD: сейчас заметил, что контейнер падает и на windows так же, вчера всё работало нормально, понятия не имею, что успело случиться.

UPD#2: после выполнения этой команды fsutil.exe file setCaseSensitiveInfo ./ disable в папке tmp\db\ на windows контейнер падать снова перестал.

UPD#3: спустя ещё день почти разбил лицо facepalm'ом, когда просто создал проект сразу на linux и всё заработало. (учился по какому-то гайду с ютуба 2-х годовалой давности и там разбирали эту тему именно создавая проект сначала на windows, при этом на видео всё работало), почему я не сделал этого сразу? В общем, проблема решена, всем спасибо за внимание.

Ответы

Ответов пока нет.