家里搞了台旧电脑做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. p73_万维网和HTTP协议

    一.URL形式 URL不区分大小写 <协议>://<主机>:<端口>/<路径> 二.HTTP协议 HTTP协议定义了浏览器(万维网客户进程)怎样向万维网 ...

  2. IDEA 2020.1.2安装破解激活 idea 2020.1.3下载 安装 一键破解

    IDEA 2020.1.2 idea 2020.1.3下载 安装 破解 本项目只做个人学习研究之用,不得用于商业用途!若资金允许,请点击链接购买正版,谢谢合作!学生凭学生证可免费申请正版授权!创业公司 ...

  3. 设计模式:proxy模式

    目的:为其他对象提供一种代理以控制对这个对象的访问 理解:尽管Decorator的实现部分与代理相似,但Decorator的目的不一样.Decorator为对象添加一个或多个功能,而代理则控制对对象的 ...

  4. python Scrapy 从零开始学习笔记(一)

    在之前我做了一个系列的关于 python 爬虫的文章,传送门:https://www.cnblogs.com/weijiutao/p/10735455.html,并写了几个爬取相关网站并提取有效信息的 ...

  5. 什么是 A/B 测试?

    1.什么是A/B 测试?有什么用? 做过App功能设计的读者朋友可能经常会面临多个设计方案的选择,例如某个按钮是用蓝色还是黄色,是放左边还是放右边. 传统的解决方法通常是集体讨论表决,或者由某位专家或 ...

  6. 在npm发布自己造的轮子

    提到封装组件,发布到npm,很多同学都会觉得很神秘.但其实,npm包无非就是我们平时写的比较独立且可复用的模块.当然,想要发布,除了基础组件的编写外,还要进行一些包装.下文通过一个简单的案例,和大家一 ...

  7. 使用MacOS自带的SVN客户端

    原文链接:https://jingyan.baidu.com/article/5552ef479c1554518ffbc92f.html 摘要:mac环境下有自带的SVN服务端和客户端,SVN是许多公 ...

  8. Python定位模块_PYTHONPATH变量

    Python定位模块: 导入模块时,系统会根据搜索路径进行寻找模块: 1.在程序当前目录下寻找该模块 2.在环境变量 PYTHONPATH 中指定的路径列表寻找 3.在 Python 安装路径中寻找 ...

  9. Numpy改变数组的形状

    import numpy as np n = np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # 查看数组的大小 n.size # # 将数 ...

  10. PHP fopen() 函数

    定义和用法 fopen() 函数打开一个文件或 URL. 如果 fopen() 失败,它将返回 FALSE 并附带错误信息.您可以通过在函数名前面添加一个 '@' 来隐藏错误输出. 语法 fopen( ...