@Vadim1899

Как в докер контейнере mysql записывать медленные запросы в папке проекта?

привет! есть докер с lamp контейнером. Конфиг базы данных такой:

db:
    image: library/mysql:8.0.20
    ports:
      - "3307:3306"
    environment:
      - MYSQL_DATABASE=
      - MYSQL_ROOT_PASSWORD=
    volumes:
      - "./resources/docker/config/my.cfg:/etc/mysql/conf.d/config-file.cnf"
      - "./resources/docker/logs/slow.cfg:/var/log/mysql/mysql-slow.log"
      - "./resources/schema/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql"


my.cfg
[mysqld]
bind-address = 0.0.0.0

innodb_buffer_pool_size = 1024M

default_authentication_plugin=mysql_native_password

# Slow Queries
slow_query_log = 1
long_query_time = 5
slow_query_log_file = /var/log/mysql/mysql-slow.log
log-queries-not-using-indexes = 1

# Unicode
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci


При docker-compose build, docker-compose up файл в ./resources/docker/logs/slow.cfg создается, но туда ничего не пишется. При docker exec [container id] /var/log/mysql/mysql-slow.log выводит ошибку
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/var/log/mysql/mysql-slow.log": permission denied: unknown


Подскажите, в чем может быть ошибка? По последней ошибке полагаю нет прав на чтение файла /var/log/mysql/mysql-slow.log, но где их надо указывать?
И можно ли вообще "транслировать" mysql-slow.log из докер контейнера "наружу" в файл проекта?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Перед запуском докера создайте пустой файл и дайте полные права (конечно slow.log а не slow.cfg)
touch ./resources/docker/logs/slow.log
chown 777 ./resources/docker/logs/slow.log


- "./resources/docker/logs/slow.log:/var/log/mysql/mysql-slow.log"


А лучше пробросьте в контейнер всю папку logs

volumes:
      - "./resources/docker/config/my.cfg:/etc/mysql/conf.d/config-file.cnf"
      - "./resources/docker/logs/mysql/:/var/log/mysql/"
      - "./resources/schema/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы