docker不能进入mysql容器命令,Docker中mysql容器不能导入大sql文件的解决方法

docker版mysql也用了有一段日子了,期间遇到了一个问题,导入很大的sql文件会失败。百度了一番,找到了解决办法。顺便也让我对docker的命令有了更深的了解

进入容器,更新系统

查看mysql容器id

1

2

3$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

dafa13759afe mysql:5.6 ...

进入容器

1docker exec -it dafa13759afe /bin/bash

更新系统 注意:我这个mysql镜像使用的是Debain系统。

1

2apt-get update

...

安装nano/vim,我个人比较喜欢nano就安装nano了

1apt-get install nano

编辑mysql配置文件

查看mysql安装位置

1

2$ whereis mysql

mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql

经过排查,发现mysql配置文件在/etc/mysql/目录下

1cd /etc/mysql/

看看有哪些文件和文件夹

1

2$ ls

conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d

编辑conf.d目录下的mysqldump.cnf文件

1nano conf.d/mysqldump.cnf

将max_allowed_packet的值改成512M 然后保存退出

1max_allowed_packet = 512M

编辑mysql.conf.d目录下的mysqld.cnf文件

1nano mysql.conf.d/mysqld.cnf

在最后一行添加max_allowed_packet = 512M 然后保存退出

1max_allowed_packet = 512M

设置数据库编码(看需求)

docker版mysql使用过程中,我还发现数据是默认的编码。需要修改一下,修改成utf-8。不然数据库有些表字段插入中文会报错。

注意:我这里使用的mysql版本是5.6,其它版本的修改方式可能略有区别。

修改mysql配置文件

1nano /etc/mysql/mysql.conf.d/mysqld.cnf

添加如下代码

在[mysqld]之上添加如下代码

1

2[client]

default-character-set=utf8

在[mysqld]末尾添加如下代码 之后保存退出

1

2

3default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

然后重启容器docker restart mysql,重新连接msyql,查看编码是否修改成功

1mysql -uroot -p****

运行下面的命令 都为utf8就说明修改成功了

1

2

3

4

5

6

7

8

9

10

11

12

13

14mysql> SHOW VARIABLES LIKE 'char%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

重启容器

重启容器使配置文件生效

1docker restart mysql

导入大sql文件测试

将宿主系统的sql文件拷贝到容器中home文件夹下,

1docker cp test.sql dafa13759afe:/home

注:test.sql大小为100M

进入容器

1docker exec -it dafa13759afe /bin/bash

测试上面的配置是否成功

1mysql -uroot -p**** myproject< /home/test.sql

不报错则导入成功,报错一般是配置文件设置的问题。请自行百度解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值