Mysql docker容器块在导入数据时(OSX)

时间:2016-07-18 09:32:03

标签: mysql macos docker docker-compose

我正在使用两个容器:server(php + apache)和mysql(image)。 我正在使用最新的docker版本和OSX El Capitan。

这是我的docker-compose.yml:

server:
    build: docker/images/server
    ports:
        - "80:80"
        - "443:443"
    volumes:
        - .:/var/www/html
    links:
        - mysql
    tty: true
mysql:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: user
        MYSQL_DATABASE: test
    volumes: 
        - "./.data/db:/var/lib/mysql"

当我导入我的mysql转储时,15-20分钟后进程阻塞。我用这个命令来显示一个进程条:

pv database_dump.sql | mysql -uroot -proot test

database_dump.sql大约是3.5GB。

在开始导入我的转储之前,我是否需要做一些额外的步骤?

谢谢!

解决方案

最后,我不得不用Ubuntu 14.04和MySQL创建一个新的容器。我不知道为什么,当我试图导入我的数据库时,官方的MySQL容器不起作用。

3 个答案:

答案 0 :(得分:0)

最简单的方法是使用MySQL Workbench并连接到您的数据库URI并导入转储

答案 1 :(得分:0)

尝试使用

导入
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE

来源:https://gist.github.com/spalladino/6d981f7b33f6e0afe6bb

答案 2 :(得分:-1)

首先,创建一个数据库; 然后运行命令:

$ pv data_file.sql | docker exec -i 容器名称 mysql -uUSER -pPASSWORD 数据库名称