Mysql导入导出时遇到的问题解决

所属分类: 数据库 / Mysql 阅读数: 644
收藏 0 赞 0 分享

背景

自从把我手上的任务全部转换成docker运行和管理之后,遇到了一系列的坑,这次是mysql备份的问题。

原因是启动mysql镜像的时候没有指定-v,导致一段时间之后docker很大,原来的磁盘不够了,需要迁移到新磁盘。

在使用导入导出的时候出现了一些问题,浪费了很多时间去解决。

解决过程

定位mysql镜像过大

查看容器占用的空间

```docker system df```

查看详细信息

Local Volumes space usage:
VOLUME 
NAME               LINKS SIZE
3e764b0633ea2c3f3dc5b0bf79dc753055d7c09451b477d3015650c66ea4a5fb 0 0B
598a592e1f9d90d2564c7c52f45f6f6a96784ad0426ec60682299fa1a1b93b96 0 0B
5eb12b3b0091810bbe3c94c5801ad2f2ff51d79b69b0ac01eb37cf00d37d89f6 0 0B
admin_logs               0 0B
f42e3ef90e4c7b3658a0fb4a877e90b298b12cb58cd63f38d9b4ad5c2ab41d73 0 0B
3361b9c615e09708170018dc7d170b8d4b498dd83cbcb155a3d41234d08e8119 1 9.3G

此时根据上面返回的信息,只有两个容器有VOLUMES,一个是mysql,还一个是redis,所以使用docker inspect container_id命令查看具体容器具体的信息,发现确实是9.3G的那个Volume。

CONTAINER ID  IMAGE  COMMAND   LOCAL VOLUMES  SIZE 
cb76bbc211e6  mysql  "docker-entrypoint.s…" 1    7B

备份mysql到新挂的盘

```docker exec -it mysql mysqldump -u用户名 -p密码 数据库 > /mnt/vdb/data/mysql/test_db.sql```
用户名、密码和数据库自己修改

导入mysql

1. 为了保证之前的数据还在,所以另起一个mysql容器,并且使用-v映射到宿主机。

2. 然后执行:docker exec -i mysqld mysql -uroot -proot federation < /mnt/vdb/data/mysql/fed_db.sql

错误来了

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near 'mysqldump: [Warning] Using a password on the
command line interface can be insec' at line 1

我搜索了很多的资料,都没有效果,于是决定使用图形化工具直接备份,于是使用navicat,备份,在新的镜像导入,并且导入成功。

  • 这个里面的Rows,和我导入之后的显示的不一样
  • 这个里面的Rows,和我导入之后的显示的不一样
  • 这个里面的Rows,和我导入之后的显示的不一样

  • WTF?总数1688,只显示1480?
  • 进入到docker容器里面,使用命令行查询,确实是1688,确实是展示的Rows不对,So...

总结

使用docker时,要考虑好需不需要外挂卷,一般数据库的最好都外挂,备份迁移都很方便

不要过分依赖数据库的GUI,命令行才是最证实可靠的

实在不行,你狂加硬盘吧,反正都是在服务器上,但是要确保,服务器不会蹦,否则数据容易丢失。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

更多精彩内容其他人还在看

mysql found_row()使用详解

在参考手册中对found_rows函数的描述是: it is desirable to know how many rows the statement would have returned without the LIMIT. 也就是说,它返回值是如果SQL语句没有加LI
收藏 0 赞 0 分享

很全面的MySQL处理重复数据代码

这篇文章主要为大家详细介绍了MySQL处理重复数据的实现代码,如何防止数据表出现重复数据及如何删除数据表中的重复数据,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

图文详解Ubuntu下安装配置Mysql教程

这篇文章主要以图文结合的方式详细为大家介绍了Ubuntu安装配置Mysql的实现步骤,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Ubuntu下mysql安装和操作图文教程

这篇文章主要为大家详细分享了Ubuntu下mysql安装和操作图文教程,喜欢的朋友可以参考一下
收藏 0 赞 0 分享

Linux/UNIX和Window平台上安装Mysql

这篇文章主要为大家详细介绍了Linux/UNIX和Window两个系统上采用命令安装Mysql的方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

忘记MySQL的root密码该怎么办

忘记密码总是一件令人头疼的事情,当我们忘记了MySQL的root密码该怎么办?本文给出解决方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)

这篇文章主要介绍了Mysql存储引擎MyISAM的常见问题,针对表损坏、无法访问、磁盘空间不足等问题进行解决,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

VS2013连接MySQL5.6成功案例一枚

这篇文章主要为大家分享了VS2013连接MySQL5.6成功案例一枚,很有实用性,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Windows下mysql修改root密码的4种方法

这篇文章主要为大家详细介绍了windows下mysql修改root密码的4种方法,大家可以根据的自己的实际情况进行选择,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法

这篇文章主要介绍了mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多