将mysql导入到运行的docker容器中不起作用

时间:2018-04-20 21:00:13

标签: mysql docker docker-compose mariadb

我可能错过了显而易见的事情,但我现在已经摸不着头脑了几个小时。

我的docker-compose.yml

version: '3' 
services:
  db:
    image: 'bitnami/mariadb:latest'
    container_name: mariadb
    restart: always
    ports:
      - '3306:3306'
    volumes:
      - ./mysql:/bitnami
      - ./backup:/docker-entrypoint-initdb.d
   networks:
     - default
  environment:
    - MARIADB_ROOT_PASSWORD=root
    - MARIADB_DATABASE=mydb

工作得很好。启动也没问题。一旦它运行我就

docker exec -i mariadb mysql -uroot -proot mydb < backup/all.sql

没有错误,没有,但它没有进行导入。当我走很长的路时:

docker exec -it mariadb bash
mysql -uroot -proot mydb < /docker-entrypoint-initdb.d/all.sql

它按预期工作。我没看到什么?

1 个答案:

答案 0 :(得分:0)

我检查了你的类似命令,到目前为止我会说,它应该有效。下面是我的工作样本:

> echo select now() | docker exec -i mariadb mysql -uroot -proot mydb
now()
2018-04-20 21:32:38

> echo create table foo (x integer) | docker exec -i mariadb mysql -uroot -proot mydb

> echo describe foo | docker exec -i mariadb mysql -uroot -proot mydb
Field   Type    Null    Key     Default Extra
x       int(11) YES             NULL

所以我会说你的命令是正确的。 也许问题出在backup / all.sql中?