Mysql Docker 容器重启后数据库数据丢失分析

这篇具有很好参考价值的文章主要介绍了Mysql Docker 容器重启后数据库数据丢失分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

项目复用nacos的mysql数据库且msyql容器已存在,之前已新建好数据库并插入数据。本次需要更新数据库表结构和数据。重启myql导致数据库数据丢失。
另外,本次事故是昨天发生未及时记录,日志不够详细。


问题描述

本次需要更新数据库表结构和数据,通过dbviewer操作失败报
异常,部分信息如下:

SQL 错误 [1030] [HY000]: Got error 11 - 'InnoDB error' from storage engine G

查看docker日志,部分信息如下:

[InnoDB] File ./xxx: 'mkdir' returned OS error 71.

猜测1:磁盘空间不足问题,但查看目录空间足够,不成立
猜测2:mysql本身问题,重启了mysql,然后发现项目新建的数据库没有了,通过root用户连上mysql只有,mysql自身数据库和nacos库在,其他数据库没了。出现数据库数据丢失问题


原因分析:

分析1:检查mysql容器有挂载到磁盘空间目录,是有持久化数据的。

$ sudo docker inspect -f '{{.Mounts}}' mysql
[{bind  /tmp/nacos222/example/mysql /var/lib/mysql  rw true rprivate}]

想着是否能通过mysql数据还原,没找到方案。

分析2:今天留意到是挂在/tmp目录的,检查目录文件,都是昨天创建的。又不像是/tmp目录清理,因为/tmp目录其他文件日期还是以前的。

猜测是重启时mysql容器重新安装了且;由于重启前没有查看原容器的挂载目录,无法比较。只好创建新的容器,


解决方案:

由于本项目未完全上线,且数据量小,可以重新建库建表导入数据。但:要注意重新创建容器,不挂在/tmp目录下

总结

侥幸心理,同时经验不足,以为重启容器没啥问题,在还能访问数据库情况下,未能及时备份数据。文章来源地址https://www.toymoban.com/news/detail-788833.html

到了这里,关于Mysql Docker 容器重启后数据库数据丢失分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows下重启MySQL数据库

    本文介绍三种方法,简单有效,不需要太多麻烦的代码。 准备工作:先打开 service服务应用。 关于service服务应用的启动方式,可以推荐看这篇文章。或者搜索:Windows打开服务 http://t.csdn.cn/SeSjc 这里介绍方便的一种:win+R组合键,弹出运行窗口, 输入  services.msc 然后

    2024年02月02日
    浏览(46)
  • Docker系列---【mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?】...

    为了快速搭建数据库,我使用了docker搭建数据库,由于服务器资源紧张,我想先把mysql容器停掉,启动jenkins容器,使用完之后再停掉jenkins,启动mysql,结果由于服务器资源有限,服务器卡死了,无法远程连接了,没办法,我只能登录运营商的云平台管理平台,强制重启服务器

    2024年02月08日
    浏览(47)
  • 【问题解决】容器部署MySQL的数据在docker commit导出的镜像中丢失

    最近公司有个甲方项目参加竞赛,要求在(基于kubeflow/arena)平台上部置应用,可以将MySQL打包在应用一起,也可以分开部署,没有提供volume相关的支持。大意是可以把初始好的数据直接拿到平台上。 经过本人在Linux虚机中启动MySQL容器导入数据再 docker commit 出镜像部署到平台上

    2024年02月11日
    浏览(38)
  • Docker跨容器访问数据库

    有两个docker镜像:mysql镜像和ubuntu镜像。项目的数据库和代码分别打包在mysql镜像和ubuntu镜像中。项目代码需要跨容器访问数据库。 使用docker --link参数实现容器互联 1.装载mysql镜像 查看已装载镜像列表:  2.以mysql8镜像创建容器 参数释义: --name mysql 命名创建的容器为mysql -

    2024年02月06日
    浏览(42)
  • 云原生小疑问 ⁉️ - Kubernetes 下重启容器会丢失数据吗?

    在 docker 环境下,容器重启后还是原来的容器,数据并没有丢失。那是不是 k8s 环境下,重启也不会丢失呢? 在kubernetes/RainBond环境下, 最小化的管理单元是 Pod 。 对 Pod 的重启,本质上是先删除,然后启动新的容器 。所以原本容器中的数据会丢失。 java程序中一般如下数据需

    2024年04月25日
    浏览(33)
  • 瀚高数据库 docker 容器单机运行(安全版v4.5.9)

    瀚高数据库 docker 容器单机运行 鉴于有些高端客户需要容器运行瀚高数据库,本文主要针对这些用户说明一下瀚高数据库镜像的操作。 文档所使用的docker版本是 18.03.0 。 已拿到docker镜像包 459.tar ,如有需要可以拨打热线电话 400-708-8006 。 注意: 容器内已经初始化好数据库实

    2024年01月16日
    浏览(61)
  • Linux系统时间 vs Docker容器时间 vs 数据库时间

    前两天写了个小demo,部署到腾讯云上,今天测了一下插入数据的接口,发现插入后的数据时间不对。由于我的mysql是装在docker里的,因此有必要将linux系统时间,docker容器时间,以及mysql时间这三者统一起来。 首先确认linux系统时间是否与当前时间一致,登录服务器后直接用

    2024年02月09日
    浏览(71)
  • 往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

    cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1.1、新建挂载的宿主机根目录 挂载的文件都放置该目录下 1.2、运

    2024年01月19日
    浏览(83)
  • 【Docker】Docker中安装MySQL数据库

    点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 虽然 docker 安装 mysql 不是一个很好的方案,但是为了个人使用方便,使用 docker 安装 mysql 还是没什么问题的。 且安装时把主机文件挂载到容器上,保证了 mysql 的持久化,对开

    2024年02月14日
    浏览(43)
  • docker-compose mongo 启动mongo容器后如何执行脚本创建用户数据库问题

    系统版本: 环境变量:Linux下必须export声明两个环境变量,注意这个账户同时也是创建的数据库的连接用户密码 目录:/home/user/docker-compose.yml 镜像:mongo:6.0.10 容器名:mongobss 挂载卷:data/db数据目录 start.sh后创建用户和库的脚本 环境变量:定义初始的mongo root角色用户 privil

    2024年02月04日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包