家里搞了台旧电脑做NAS,安装了nextcloud,选择了mysql做为数据库。

当时也没有想太多,mysql数据库密码随便设置了个123456,用的一切正常。

然后,听说可以找电信申请换个公网IP的,于是想申请个域名,可以在外面访问nextcloud。

打10000号倒是很顺利地开通了公网IP,感觉用的挺好的。就差一个域名了,就等于拥有了一台私人服务器,一阵窃喜。

然后忙着挑域名去了~~~心情大好~~

前天回家,想把手机文件移一些到NAS上,结果发现连接不上了。打开电脑访问,提示服务有问题。

赶紧看一下nextcloud的日志:提示数据表不存在。

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nextcloud.oc_appconfig' doesn't exist

登陆mysql查看,nextcloud的数据库下面表全没了,只留下了一个WARNING( 一开始还以为是mysql出错了,没想到WARNING是个表。。。)

查询WARNING一看,里面留一句话,虽然有些字符乱码没显示出来,结合网上搜索的结果,应该是让我支付0.03BTC来恢复nextcloud数据

心里一凉,这是遭遇勒索了吧!!!

赶紧再看一下nextcloud里面的照片和视频,不要也被删除了,那真的是要哭出来了。

不幸中的万幸,nextcloud的文件还在,数据库里面只是存一些nextcloud的配置和文件路径,真正的文件应该没有丢失。

回想起来,刚开公网IP时,特地用公网IP试了一下,nextcloud无法直接访问,好像是要修改配置文件,才能从外网访问。

当时忙着去上班,没空研究,就先扔在那了,居然避免了一次损失。

于是,赶紧把防火墙启动起来(对,为了方便,一向是直接把防火墙关了的。。。应该不止我一个人这么干吧。。。)

下一步,就要想办法恢复nextcloud了。

首先,想到一个办法,nextcloud重新配置一下数据库,是不是就可以直接恢复使用了呢?

毕竟nextcloud的文件都在,说不定nextcloud可以自动识别文件目录里面的内容。

抱着一丝希望,再启一个mysql环境(用的docker,确实方便),然后把nextcloud目录下的config/config.php 删除掉,并且touch 一个config/CAN_INSTALL文件

刷新浏览器,就可以出现第一次安装时,配置数据库的界面。

配置到新数据库, 想创建跟之前一样的管理员帐号,会提示该用户已存在文件。

将nextcloud下的root目录改名,重新配置一下nextcloud,成功。

这时候nextcloud 又会创建一个root目录,里面是nextcloud默认的一些文件例子。

于是直接将新的root目录删除,换成旧的root目录,以便确认nextcloud会不会自动识别目录内容。

结果。。。。不行!!

nextcloud上面显示的文件内容,还是默认的例子(证明这些文件信息,应该是从mysql数据库里面读取出来,而不是读取实际的文件目录)。

剩下还有两个办法可以尝试的:

1,恢复mysql数据库;

2,将nextcloud的文件再上传一遍;

下次再试。

记一次mysql数据库被勒索(上)的更多相关文章

  1. 记一次mysql数据库被勒索(中)

    背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选 ...

  2. 记一次mysql数据库被勒索(下)

    背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) ...

  3. 初码-Azure系列-记一次MySQL数据库向Azure的迁移

    初码Azure系列文章目录 还在继续给客户迁移不同的系统到Azure,这一次是一个系统的MySQL数据库要迁移,将迁移过程记录一下 原系统环境 数据库版本:MySQL Community Editio ...

  4. 记一次mysql数据库失而复得过程

    背景: 由于是自己买的vps搭建的博客,用的是军哥的一键lnmp源码编译安装的,文章也就几篇,对备份并不太重视,想着等服务器快到期的时候备份一下不就行了. 后来在该服务器上测试lnmp分别编译编译安装 ...

  5. MySQL数据库索引(上)

    上一篇回顾: 1.数据页由七部分组成,包括File Header(描述页的信息).Page Header(描述数据的信息).Infimum + Supremum(页中的虚拟数据最大值和最小值).Use ...

  6. 记一次Mysql数据库Kill完之后启动不起来的解决方案

    在Mysql运行的时候,有时候会stop不了,这时候我们就会想直接把他的进程kill掉. 但是,有时候kill完了之后,在去start它就会直接抛异常了... ERROR! The server qu ...

  7. 记一次MySQL数据库拒绝访问的解决过程

    问题背景 用wordpress搭博客,数据库采用MySQL.为了调试方便,创建账户my_account ,允许它从任意主机访问数据库. CREATE USER `my_account`@'%' IDE ...

  8. mysql数据库在linux上的不同登录方式和权限

    在我的上两篇博文里,一篇是安装,一篇是配置远程登录, 提君博客原创 >>提君博客原创  http://www.cnblogs.com/tijun/  << 所以我的mysql的 ...

  9. 记一次MySQL数据库导入错误

    昨天在转数据的时候,控制台报出了下面这个warning: Warning: Data truncated for column '控制距离' at row 1 字面上意思应该是:控制距离这一字段在第一 ...

随机推荐

  1. STL源码剖析:迭代器

    准备知识 什么是迭代器? 迭代器是链接容器和算法的桥梁,所有的算法都通过迭代器操作容器中的数据 迭代器是一种智能指针,最重要的操作符重载就是operator*,operator-> 迭代器的实现 ...

  2. 设计模式:prototype模式

    使用场景:在不能根据类创建对象的时候,根据已有的对象创建对象 不能根据类创建对象的情况: 创建一个类的对象时,需要根据多种对象来创建,创建的过程非常复杂 难以根据类生成对象 例子: class Pro ...

  3. DJANGO-天天生鲜项目从0到1-006-首页-内容展示

    本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...

  4. java HashMap、HashTable、ConcurrentHashMap区别

    HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相 ...

  5. 贪心法-------Saruman's army

    此题的策略是选取可用范围最右边的点,一般来说该点辐射两边,左侧辐射,右侧辐射,所以用两个循环,第一个循环找出该点,第二个循环求出最右边的点 源代码: #include<iostream># ...

  6. OceanBase安装和使用

    链接 https://mp.weixin.qq.com/s?spm=a2c6h.12873639.0.0.41f92c9bH5FL2Y&__biz=MzU3OTc2MDQxNg==&m ...

  7. [Abp vNext 源码分析] - 23. 二进制大对象系统(BLOB)

    一.简介 ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统,主要用于存储大型二进制文件.ABP 抽象了一套通用的 BLOB 体系,开发人员在存储或读取二进制文件时,可以忽略具体实 ...

  8. Django开发之模态框提交内容到后台[Object Object]

    版本 Python 3.8.2 Django 3.0.6 场景 前端页面:使用bootstrap-table展示后台传入数据,选中多行提交修改,弹出bootstrap模态框 模态框内容:根据选中表格行 ...

  9. Hexo博客美化之蝴蝶(butterfly)主题魔改

      Hexo是轻量级的极客博客,因为它简便,轻巧,扩展性强,搭建部署方便深受广大人们的喜爱.各种琳琅满路的Hexo主题也是被各种大佬开发出来,十分钦佩,向大佬仰望,大声称赞:流批!!! 我在翻看各种主 ...

  10. 学习JavaScript数据结构与算法 2/15

    第一章 JavaScript简介 js不同于C/C++,C#,JAVA,不是强类型语言. 通常,代码质量可以用全局变量和函数的数量来考量(数量越多越糟).因此,尽可能避免使用全局变量. JS数据类型 ...