导入 data.sql MySQL Docker 容器

新手上路,请多包涵

如果我有 data.sql,如何将数据库导入我的 mysql docker 容器?如何导入数据库数据。在码头化的世界中,这增加了一层复杂性。请提供一些方法。

这是我的 docker-compose.yml:

 nginx:
  build: ./nginx/
  container_name: nginx-container
  ports:
    - 80:80
  links:
    - php
  volumes_from:
    - app-data

php:
  build: ./php/
  container_name: php-container
  expose:
    - 9000
  links:
    - mysql
  volumes_from:
    - app-data

app-data:
  image: php:7.0-fpm
  container_name: app-data-container
  volumes:
    - ./www/html/:/var/www/html/
  command: "true"

mysql:
  image: mysql:latest
  container_name: mysql-container
  ports:
    - 3306:3306
  volumes_from:
    - mysql-data
  environment:
    MYSQL_ROOT_PASSWORD: secret
    MYSQL_DATABASE: name_db
    MYSQL_USER: user
    MYSQL_PASSWORD: password

mysql-data:
  image: mysql:latest
  container_name: mysql-data-container
  volumes:
    - /var/lib/mysql
  command: "true"

原文由 Israel Morales 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 709
2 个回答

我似乎无法使用最新的 mysql 或 mysql:5.7 来完成这项工作。所以我改用mariaDB。这是我的 docker-compose.yaml 代码。

 version: '3'

services:
  mysql:
    image: mariadb:10.3
    container_name: mariadb
    volumes:
      - container-volume:/var/lib/mysql
      - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: name_db
    ports:
      - "3306:3306"

volumes:
  container-volume:

原文由 Hana Alaydrus 发布,翻译遵循 CC BY-SA 4.0 许可协议

之后您可以导入数据库:

docker exec -i mysql-container mysql -uuser -ppassword name_db < data.sql

原文由 Lauri 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题