如果我有数据.sql,如何将数据库导入mysql docker容器?如何导入数据库数据.在一个与世隔绝的世界里,这增加了一层复杂性.请给我一些方法.

我的docker 来了.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"

推荐答案

我似乎无法用最新的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:

Mysql相关问答推荐

在MySQL中查找具有公共值的列名

一次又一次地删除事件行

MySQL有没有办法直接从CSV文件中读取而不是导入它?

Group_CONCAT CASE 乘法输出

如何通过SQL来计算到达特定值的行的数量

是否可以使用 IN 或 NOT IN 从没有关联其他表中任何行的表中返回这些名称?

mysqli 无法以非 root 用户身份连接

MySQL DISTINCT 日期仅返回特定表的 1 个值.相同的查询适用于其他表

mySQL 中的主数据库和 IF 错误?

为什么 fetch 方法不能获取任何东西?(feat node.js,restAPI)

MYSQL如何将虚拟列添加到现有表中

从 SQL 中的左连接和内连接中减go 计数

我在查询中没有得到正确的结果

如何根据特定条件从mysql数据库中 Select 查询

将每组的总和除以总数

是否可以在内部连接期间重命名连接列?

MySQL 导出到 outfile:CSV 转义字符

Sequelize:销毁/删除表中的所有记录

cron 启动的 mysqldump 和密码安全

创建一个没有 :id 列的 ActiveRecord 数据库表?