docker-compose / mysql: как правильно указать том для использования существующей базы данных - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы создать контейнер для существующей базы данных mysql, связывающей каталог данных внутри моего контейнера с моей локальной файловой системой.

Эта команда docker run работает нормально, то есть база данных доступна, а данные сохранены.

docker run -v ./mydata:/var/lib/mysql mysql:5.7

Однако я не могу заставить его работать с docker-compose.

Я получаю следующие ошибки

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 
...
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

Мой файл docker-compose выглядит так:

version: "3.7"
  services:
  database  :
    restart: always
    image: mysql:5.7
    command: --port=4406
    volumes:
      - ./mydata:/var/lib/mysql

Что не так с моим compose-файлом?

UPDATE: Содержание mydata

  • auto.cnf
  • ib_buffer
  • бассейн
  • ib_logfile0
  • ib_logfile1
  • ibdata1
  • MySQL

Я также попробовал ./mydata/mysql:/var/lib/mysql для томов. Это позволяет мне подключаться к базе данных (например, через mysql workbench), но я получаю еще одну ошибку (DESCRIBE mysql.db File not found), когда я пытаюсь увидеть пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...