【问题标题】:docker - how to migrate mysql data from local to ec2 instancedocker - 如何将 mysql 数据从本地迁移到 ec2 实例
【发布时间】:2021-07-02 20:34:12
【问题描述】:

在本地环境中,我正在使用 docker-compose 文件创建多个容器,包括 mysql 容器。
mysql容器的数据存放在./db-data.
数据库中有 4 个表,例如表 A、B、C、D。

在开发环境中,我创建了一个 ec2 实例并使用相同的 docker-compose 文件创建容器,而 mysql 数据库由 Aws RDS 管理。

我想将表A和B的所有数据从本地复制到开发环境,但不知道如何实现?

docker-compose.yml

version: '2.1'

services:
  test-db:
    image: mysql:5.7
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_USER=admin
      - MYSQL_PASSWORD=12345
      - MYSQL_DATABASE=test
    volumes:
      - ./db-data:/var/lib/mysql
    ports:
      - 3306:3306
  test-web:
    environment:
      - NODE_ENV=local
      #- DEBUG=*
      - PORT=3030
    build: .
    command: >
      ./wait-for-db-redis.sh test-db npm run dev
    ports:
      - "3030:3030"
    depends_on:
      - test-db

【问题讨论】:

    标签: mysql node.js amazon-web-services docker amazon-ec2


    【解决方案1】:

    如果您想将数据从实例上的 mysql 迁移到 RDS mysql,mysqldump 可能是最简单的选择,如 AWS 文档中所述:

    您还可以将现有 MySQL 或 MariaDB 数据库中的数据导入 MySQL 或 MariaDB 数据库实例。为此,您可以使用 mysqldump 复制数据库并将其直接通过管道传输到 MySQL 或 MariaDB 数据库实例中。

    如果基本mysqldump 不适合您,还可以考虑其他选项,具体取决于您的要求。例如migrating live database with minimal downtime,或使用Percona XtraBackup software,如AWS docs 中所述,甚至AWS database migration service

    【讨论】:

      【解决方案2】:

      除了 Marcin 的回答,如果您使用的是 MYSQLWorkbench,您还可以执行以下操作:

      1. 在要提取数据的表中运行SELECT * FROM <Your table name>;
      2. 单击Result Grid 中的Export 按钮
      3. 在格式中选择SQL Insert statements
      4. 然后您可以获取 SQL 插入语句的列表。

      【讨论】:

        猜你喜欢
        • 2018-10-13
        • 2019-09-04
        • 2010-12-12
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        • 2015-07-24
        相关资源
        最近更新 更多