最开始是因为发现在自己运行代码的服务器上tab键自动补全会报错
如图, 我想的是敲出cd /hom
之后再按tab
进入home目录

发现报错了, 百度了一下才知道问题有点严重, 文件系统全变为只读, 按照百度教程使用mount
命令将文件系统列出, 如下图

将ro地方改为rw, 报错, 而且fsck和mount和mkdir命令全部报错

不管什么样了, 重启一下说不定就好了, 重启之后发现关机了就起不来了, xshell连不上了, 无奈找老大到控制台去看了看, 发现服务器挂掉了, 还好没啥文件, 删了重新创了台机器给我
然后重新将gitlab上的代码克隆下来重新部署环境, 装python, django, drf, 一大堆包, 发现项目起来之后连不上数据库, 使用Navicat也连不上, 心里就有种不好的预感
进入数据库的服务器一看, 多然docker停掉了, 而且起不来了, 同样是报错是只读文件系统, 跟我运行代码的服务器报错相同, 此时不敢乱动, 更不敢重启了, 先备份数据重要
找了一下教程基本上都是得基于docker run来备份, 可是我的docker根本就run不起来
于是查看数据卷与所在位置


直接将mysql_data
整个目录复制下来应该可以吧
此时还不敢动数据库的服务器, 也不知道要怎么处理这个mysql_data
文件夹, 所以还是尝试找找文件系统如何修复, 使用dmesg
命令看了一下, 结果如下, 研究了一下午, 发现自己处理不了了, 所以还是研究数据卷恢复, 应该简单一点

在本机装装了台Ubuntu虚拟机, 安装docker并pull了一个docker镜像, 然后将mysql_data文件夹放到同样的位置/var/lib/docker/volumes/
下, 执行了一下docker volume ls
命令, 哈哈, 数据卷直接就有了 然后直接用数据卷起了下容器试了下, 数据都还在


注意, 这里的root密码需要与之前的root密码相同
docker run --rm -d -e MYSQL_ROOT_PASSWORD=****** \
-v mysql_data:/var/lib/mysql \
-p 3306:3306 mysql:5.6
总结
docker下的数据卷备份直接拷贝数据卷的那个文件夹到新的环境, 数据卷就能直接使用了
网友评论