我的编程空间,编程开发者的网络收藏夹
学习永远不晚

解决docker重启redis,mysql数据丢失的问题

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决docker重启redis,mysql数据丢失的问题

官方文档:

所以 mysql应如下启动:

docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密码 -v /windows盘符/指定的文件夹路径:/var/lib/mysql    mysql:5.7

redis:

docker run -p 6379:6379 -d  -v /windows盘符/指定的文件夹路径:/data    redis:5.0 redis-server --appendonly yes

多看官方文档,里面有详细的说明

补充知识:docker 挂载进容器的文件修改后没有改变需要重启

今天发现一个很奇怪的现象,就是我在宿主机上的文件挂载进docker后,主机上删除了文件,并且重新上传重命名为相同名字的文件,容器中的没有同步.

先来说下Linux,Linux存储是分为iNode和block的,iNode存储的是文件的属行信息,例如大小,在磁盘的什么位置,block是4k大小的一个块,存储的是文件的实际信息,不足4k大小的文件也会占用掉4k的空间.

了解了上面,再来说docker,挂载进docker的文件,实际上是docker记住了一个iNode,他可以通过这个iNode找到block,也就是实际的文件信息.如果是用 > 追加重定向写入文件,是可以同步到docker的,但是如果是rm 重命名的,文件的iNode就改变了,但是docker中的iNode还是指向了之前的磁盘位置,所以文件没有改变.

rm 原理:rm只是删除了iNode,没有了iNode通过正常方式,找不到磁盘上的block,看起来就是删除了,但是文件信息还在,文件信息会在下次写入到这里的时候覆盖掉,所以数据被删除还有恢复的方法,但是,如果删除的时候文件是打开的,文件也不会被删除

同样的还有vim ,vim 文件的时候,是基于现有的文件copy了一份,同级目录下会有一个 .开头swp结尾的文件,当你保存退出的时候,vim 会删掉源文件,将这个文件重命名为源文件的名字,iNode自然也就改变了.

以上这篇解决docker重启redis,mysql数据丢失的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

解决docker重启redis,mysql数据丢失的问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

解决docker重启redis,mysql数据丢失的问题

官方文档:所以 mysql应如下启动:docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密码 -v /windows盘符/指定的文件夹路径:/var/lib/mysql mysql:5
2022-05-24

Linux系统重启后MySQL数据丢失问题的解决步骤

目录1 问题描述2 原因分析3 解决步骤3.1 确认数据盘状态3.2 手动挂载数据盘3.3 检查mysql数据目录3.4 启动MySQL服务4 预防措施4.1 正确配置/etc/fstab文件4.2 定期备份4.3 监控系统4.4 测试恢复
Linux系统重启后MySQL数据丢失问题的解决步骤
2024-09-26

unraid重启后docker数据丢失如何解决

如果在重启 Unraid 后遇到 Docker 数据丢失的问题,有一些可能的解决办法:1. 检查 Unraid 配置:确保 Unraid 配置正确,并且 Docker 容器和数据的路径没有更改。2. 检查 Docker 配置:确保 Dock
2023-09-09

linux中redis重启数据丢失怎么解决

在Linux环境中,如果Redis重启导致数据丢失,可以尝试以下解决方法:启用持久化功能:在Redis配置文件中开启RDB持久化功能或者AOF持久化功能,可以将数据写入磁盘,以防止重启数据丢失。使用Redis Sentinel:Redis
linux中redis重启数据丢失怎么解决
2024-04-09

docker容器重启后数据丢失怎么解决

当Docker容器重启后数据丢失的问题,可以通过以下几种方式来解决:挂载数据卷(Volume):使用Docker的数据卷功能,将容器中的数据目录挂载到宿主机的文件系统上,这样即使容器重启,数据仍然在宿主机上,不会丢失。例如,使用 `-v`
2023-10-27

解决vuex数据丢失问题

本文主要介绍了解决vuex 数据丢失问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-02

Redis脑裂导致数据丢失的解决

目录1 案例2 脑裂原因2.1 为什么数据会丢失?3 为何脑裂会导致数据丢失?4 脑裂应急方案5 总结6 最佳实践1 案例主从集群有1个主库、5个从库和3个哨兵实例,突javascript然发现客户端发送的一些数据丢了,直接影响业务层数据
2023-01-28

云服务器mysql重启后的数据库丢失

检查MySQL服务器的连接设置:确保MySQL服务器的连接设置正确,并且已经连接上云服务器。如果连接配置有误,则可能会导致数据库连接失败。检查MySQL服务器的数据库服务是否正常:如果MySQL服务器的数据库服务出现问题,可能会导致数据库数据丢失。可以使用命令行工具检查MySQL服务器的数据库服务是否正常,并确保MySQL服务器的数据库服务已正确配置。检查MySQL服务器的配置:检查MySQL服务器的配置...
2023-10-27

如何解决Mybatis查询时数据丢失的问题

这篇文章主要为大家展示了“如何解决Mybatis查询时数据丢失的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Mybatis查询时数据丢失的问题”这篇文章吧。Mybatis查询时数据
2023-06-28

PHP参数丢失问题的解决方案

PHP参数丢失问题的解决方案在开发PHP程序的过程中,经常会遇到参数丢失的问题,这可能是由于前端传递的参数不完整、后端接收参数的方式不正确等原因造成的。在本文中,我们将针对PHP参数丢失问题提供一些解决方案,并附上具体的代码示例。一、前
PHP参数丢失问题的解决方案
2024-03-11

MySQL 丢失数据的原因及解决

前言最近偶尔会收到用户反馈数据不见了,数据丢失了的问题。从现象上来看,这类问题在数据库层面就是紧急程度最高的那一类了,抛开客观条件来说,针对这一类问题的恢复手段几乎只有备份恢复+回放 Binlog,耗时一般比较久,对业务的影响也会很大。 但
2022-05-12

关于vuex强刷数据丢失问题的解决方法

这篇文章主要讲解了“关于vuex强刷数据丢失问题的解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“关于vuex强刷数据丢失问题的解决方法”吧!vuex-persistedstate核心
2023-06-14

编程热搜

目录