首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有时在Docker中导入数据Mysql非常慢

有时在Docker中导入数据Mysql非常慢
EN

Stack Overflow用户
提问于 2017-03-10 14:38:25
回答 2查看 2.2K关注 0票数 4

我有一个超过1 1GB的文件*.SQL,当我在本地或Vagrant上导入到Mysql时,它总是成功。但是用同样的文件,我在Docker上导入到Mysql,它非常非常慢(大约10MB / 15分钟)。我已经检查了很多次,结果都是一样的。我尝试了许多文件;它似乎发生在指定的文件中。我不知道原因。我需要帮助。

这是我的docker-compose.yml:

代码语言:javascript
复制
version: "2.0"
services:
 database:
  image: "mysql/mysql-server:5.5"
  ports:
   - "3307:3306"
  volumes:
   - "db:/var/lib/mysql"
   - ./sql:/home/sql
  environment:
   MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
 volumes:
  db: {}
EN

回答 2

Stack Overflow用户

发布于 2017-04-04 22:26:49

我在windows中使用docker ...我的解决方案是将.sql文件移到Docker mysql容器中,然后手动执行导入。

  • 从mysql生产服务器导出.sql ...
  • 将文件复制到Docker mysql容器

docker cp base_ok.sql docker_mysql_1:/home/base_ok.sql

  • 进入docker mysql容器的bash

docker exec -ti docker_mysql_1 bash

  • 导入数据库

mysql -p -u root magento < base_ok.sql

请注意,我的停靠容器是docker_mysql_1,您可以输入docker ps列出所有容器

票数 3
EN

Stack Overflow用户

发布于 2021-06-06 23:44:19

我的回答有点晚了,但我在这方面遇到了困难,我认为解决方案可以帮助其他人。

我已经读了很多,我在我的ext4文件系统中尝试了barrier=0,但是什么都没有。最后,对我有效的简单解决方案是将innodb缓冲池大小扩大到一个合适的值

mysql.cnf:

代码语言:javascript
复制
[mysql]
innodb_buffer_pool_size=128M

就这样。

您可以将现有的conf复制到本地目录,然后挂载它: docker cp -a

代码语言:javascript
复制
<container>:/etc/mysql/conf.d mysql_conf
# change mysql.cnf
docker run ... -v /path/to/mysql_conf:/etc/mysql/conf.d ...

或者据我所知直接传递给docker run:

代码语言:javascript
复制
docker run ... mysql:latest --innodb-buffer-pool-size=128M

更新

我发现这个解决方案本身是不够的,它有时以某种方式碰巧有效,而对其他人仍然如此缓慢(不深入挖掘原因)。

因为我只在我的pc上使用它作为mysql的开发版本,所以我并不特别担心数据损坏等问题,所以我现在有:

代码语言:javascript
复制
[mysql]
innodb_buffer_pool_chunk_size=128M
innodb_buffer_pool_size = 128M
innodb_buffer_pool_instances = 4
innodb_read_io_threads = 4
innodb_write_io_threads = 4

innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1

innodb_flush_method = O_DIRECT
innodb_doublewrite = 0
innodb_support_xa = 0
innodb_checksums = 0

general_log = 0
slow_query_log = 0

innodb_lru_scan_depth=256

然后我在所有的表上启动了一个优化表,以确保"innodb_file_per_table“是有效的。

如果您在生产环境中,请相应地调整您最害怕的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42711882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档