docker-compose mysql 初始化创建数据库不成功的问题解决

docker · Fecmall · 于 5年前 发布 · 13874 次阅读

docker安装mysql,参看文档:https://github.com/docker-library/docs/tree/master/mysql

在yml文件中加入:

mysql:  
    image: mysql:5.7 
    volumes:  
      - ./db/mysql/data:/var/lib/mysql 
      - ./db/mysql/example_db:/var/example_db 
      - ./db/mysql/conf.d:/etc/mysql/conf.d      
    ports:  
      - "3306:3306" 
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=fecshop123
      - MYSQL_DATABASE=fecshop_trace
    networks:
      - code-network 

docker-compose,mysql容器按照上面的配置,初始化创建数据库不成功!

我的操作步骤:

我第一次没有设置MYSQL_DATABASE,build后up启动后,我想加入默认数据库, 然后按照上面的配置,加上了数据库初始化MYSQL_DATABASE=fecshop_trace,然后关闭,重新build,启动 ,发现mysql容器的数据库并没有创建

查了下资料:https://github.com/docker-library/mariadb/issues/68

发现,如果数据库的数据文件夹部分,如果使用挂载的宿主主机的文件夹,要保证这个文件夹里面是空的(里面有.gitignore等隐藏文件没事),如果里面有文件,就不会初始化数据库

因此

1.首先要关闭docker-compose(必须先关闭在删除文件)

docker-compose stop

2.进入./db/mysql/data,将 里面的文件清空

cd ./db/mysql/data
rm -rf ./*

注意要进对了文件夹,以免删除错文件

然后重启即可

docker-compose up -d

数据库初始化就好了

共收到 2 条回复
vaee#14年前 0 个赞

多谢

楼主牛逼!

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics