我正在尝试将大型数据库导入mysql容器。我已经将主机目录挂载为mysql容器的卷。因此数据在主机上是持久的。导入的sql文件是def lock(key, timeout)
if @redis.set(key, Time.now, nx: true, px: timeout)
begin
yield
ensure
release key
end
end
end
+。 mysql容器在导入的一半时间内没有响应。当我运行14 GB
时,一旦mysql容器占用了所有可用内存,我就可以看到docker stats
用法变为CPU %
。我尝试将docker的内存增加到< 1
,当我为Docker分配更多内存时,它会从导入中创建更多表。但是我无法从主机分配超过10 GB
。
以下是我的10GB
文件
docker-compose.yml
我正在使用mysql:
image: mysql:5.6
environment:
- MYSQL_ROOT_PASSWORD=12345678
volumes:
- ./mysql/lib:/var/lib/mysql
- ./mysql/conf.d:/etc/mysql/conf.d
- ./mysql/log:/var/log/mysql
- /tmp:/tmp
ports:
- "3306:3306"
,其中包含泊坞版Docker for mac
我使用1.12.1
登录容器并从docker exec -it docker_mysql_1 /bin/bash
此外,我通过将sql文件挂载到/tmp
来尝试mysql repo推荐的方式。但是这也会停止mysql init。
更新1
/docker-entrypoint-initdb.d
我正在使用/ dev / disk1目录来安装卷。
答案 0 :(得分:1)
我通过更改环境解决了phpmyadmin-> import大型数据库错误 docker-compose.yml中的变量
UPLOAD_LIMIT = 1G
myadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
ports:
- "8083:80"
environment:
- UPLOAD_LIMIT=1G
- PMA_ARBITRARY=1
- PMA_HOST=${MYSQL_HOST}
restart: always
depends_on:
- mysqldb
答案 1 :(得分:0)
即使我遇到了类似的问题。 请执行以下过程,这可能对您有帮助: 首先将您的sql文件(filename.sql)复制到db容器中。
docker cp filename.sql docker_db_container:/filename.sql
稍后登录到您的db容器,并使用此(filename.sql)文件填充db。
为了在数据库中插入文件(filename.sql),
将mysql转到db容器中,使用要在其中存储数据库的db。 use database_name;
source /filename.sql
但是,如果您遇到大数据包大小的问题,那么请增加容器的数据包大小
docker exec -it docker_db_container bash -c "echo 'max_allowed_packet = 1024M' >> /etc/mysql/mysql.conf.d/mysqld.cnf"