docker-compose / mysql:如何正确指定卷以使用现有数据库

时间:2018-09-06 13:37:24

标签: mysql docker docker-compose

我想对现有的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

我的撰写文件怎么了?

更新: mydata的内容是

  • auto.cnf
  • ib_buffer
  • ib_logfile0
  • ib_logfile1
  • ibdata1
  • mysql

我还尝试了./mydata/mysql:/var/lib/mysql进行批量交易。这可以让我连接到数据库(例如,通过mysql工作台),但是当我尝试查看用户时遇到另一个错误(找不到DESCRIBE mysql.db文件)。

0 个答案:

没有答案