Я хотел бы создать контейнер для существующей базы данных 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), когда я пытаюсь увидеть пользователей.