MySQL: 8.x развертывание не удается с «-Инициализовать указанное, но в каталоге данных есть файлы в нем» в Docker Swarm MySql

Форум по Mysql
Ответить
Anonymous
 MySQL: 8.x развертывание не удается с «-Инициализовать указанное, но в каталоге данных есть файлы в нем» в Docker Swarm

Сообщение Anonymous »

Я развертываю стек WordPress + MySQL + PhpMyAdmin с помощью Docker Swarm. Моя настройка включает в себя: < /p>
  • Docker Swarm (Multi-Node) < /li>
    Traefik как обратный прокси < /li>
    Общая внешняя сеть для Ingress < /li>
    mysql 8.4 (официальное изображение) < /li>

    mysql 8.4 (официальное изображение) < /li>

    mysql 8.4 (официальное изображение) < /li> < /li>
    mysql 8.4 (официальное изображение) < /li>
    mysql 8.4. Docker-compose.yml Содержание: < /p>

    Код: Выделить всё

    version: "3.5"
    
    ######### NETWORKS #########
    networks:
    traefik:
    name: proxy_swarm
    external: true
    
    ######### SERVICES #########
    services:
    # ---- MYSQL -----
    db:
    image: mysql:lts
    container_name: db
    volumes:
    - db_data:/var/lib/mysql
    env_file:
    - ./../.setup.env
    secrets:
    - db_root_password
    - db_app_password
    security_opt:
    - seccomp=unconfined
    - apparmor=unconfined
    networks:
    - traefik
    deploy:
    resources:
    limits:
    cpus: '0.80'
    reservations:
    cpus: '0.50'
    memory: 100M
    restart_policy:
    condition: on-failure
    delay: 5s
    max_attempts: 5
    window: 120s
    labels:
    - "traefik.enable=false"
    
    # ---- PHPMYADMIN -----
    dba:
    image: phpmyadmin/phpmyadmin:latest
    container_name: dba
    env_file:
    - ./../.setup.env
    networks:
    - traefik
    deploy:
    resources:
    limits:
    cpus: '0.80'
    reservations:
    cpus: '0.05'
    memory: 100M
    restart_policy:
    condition: on-failure
    delay: 5s
    max_attempts: 5
    window: 120s
    labels:
    - "traefik.enable=true"
    - "traefik.docker.network=traefik"
    - "traefik.constraint-label=traefik-swarm"
    - "traefik.http.routers.dba.rule=HOST(`dba.example.com`)"
    - "traefik.http.routers.dba.entrypoints=web"
    - "traefik.http.routers.dba.middlewares=redirectHttpDba"
    - "traefik.http.routers.dba_secure.rule=HOST(`dba.example.com`)"
    - "traefik.http.routers.dba_secure.entrypoints=websecure"
    - "traefik.http.routers.dba_secure.service=dba"
    - "traefik.http.routers.dba_secure.tls.certresolver=traefik-cert-resolver"
    - "traefik.http.services.dba.loadbalancer.server.port=80"
    - "traefik.http.middlewares.redirectHttpDba.redirectscheme.scheme=https"
    - "traefik.http.middlewares.redirectHttpDba.redirectscheme.permanent=true"
    
    # ---- WORDPRESS -----
    app:
    image: wordpress:latest
    container_name: app
    volumes:
    - app_content:/var/www/html/wp-content
    - ./../uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    env_file:
    - ./../.setup.env
    secrets:
    - db_app_password
    networks:
    - traefik
    deploy:
    resources:
    limits:
    cpus: '0.80'
    reservations:
    cpus: '0.05'
    memory: 100M
    restart_policy:
    condition: on-failure
    delay: 5s
    max_attempts: 5
    window: 120s
    labels:
    - "traefik.enable=true"
    - "traefik.docker.network=traefik"
    - "traefik.constraint-label=traefik-swarm"
    - "traefik.http.routers.app.rule=HOST(`app.example.com`)"
    - "traefik.http.routers.app.entrypoints=web"
    - "traefik.http.routers.app.middlewares=redirectHttpApp"
    - "traefik.http.routers.app_secure.rule=HOST(`app.example.com`)"
    - "traefik.http.routers.app_secure.entrypoints=websecure"
    - "traefik.http.routers.app_secure.service=app"
    - "traefik.http.routers.app_secure.tls.certresolver=traefik-cert-resolver"
    - "traefik.http.services.app.loadbalancer.server.port=80"
    - "traefik.http.middlewares.redirectHttpApp.redirectscheme.scheme=https"
    - "traefik.http.middlewares.redirectHttpApp.redirectscheme.permanent=true"
    
    ######### SECRETS #########
    secrets:
    db_root_password:
    file: ./../env_vars/.db_root_password
    db_app_password:
    file: ./../env_vars/.db_app_password
    
    ######### VOLUMES #########
    volumes:
    db_data:
    app_content:
    
    < /code>
     Что работает: < /h2>
    
     Полный стек работает без проблем на моей локальной машине, даже используя режим Docker Swarm (Docker Deploy). MySQL 5.7 также работает без каких -либо специальных флагов.[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it.  Aborting.
    [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable.
    
    Что я пробовал:

    Использование с именованными томами (Volume_Name:/var/lib/mysql) - нет привязки

    Удаление объема Docker rm) и даже Ormancy wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -w /var/lib/docker/volumes/..../_data>
  • Проверка папки данных полностью пуста перед запуском
  • Добавление Security_opt, чтобы попытаться соответствовать - -privialeged behavior:
    .

    Код: Выделить всё

    security_opt:
    - seccomp=unconfined
    - apparmor=unconfined
    
  • Попробуя Mounts TMPFS ON/var/lib/mysql
  • Предварительное создание тома и его чистка по-прежнему приводит к той же ошибке




[*] Неудача происходит только в Swarm < /p>
< /li>
Похоже, что громкость предварительно получает докер (возможно, из тома по умолчанию изображения), что вызывает инициализируемый шаг MySQL, чтобы отбить < /p>
< /li>
Вопрос < /h2>
Какой правильный способ развернуть MySQL 8.4 в Docker Swarm без использования-привилегированного и без удара по ошибке каталога-инициализации данных? /var/lib/mysql?

Полностью воспроизводите поведение-привилегированного в стеке? /> Любое руководство от тех, кто управляет MySQL 8.x в производстве на рои.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... irectory-h
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»