家里搞了台旧电脑做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. ISE第三方编辑器的使用

    刚开始使用ISE时候感觉ISE自带的编辑器并没有什么难用的,但是在看到了小梅哥的视频教学中那样行云流水般的操作让我心动不已,由此找到了相关的编辑器.为了以后看着方便直接摘取了前人的经验在我自己的博客中 ...

  2. BUUCTF-web Easyweb

    从这道题学到了挺多 一打开题目就是登陆页面,遂扫描文件检测是否存在文件泄露 用dirsearch扫出了robots.txt,.DS_Store和其他php.DS_Store没有可用信息(buuoj的题 ...

  3. 超详细windows安装mongo数据库、注册为服务并添加环境变量

    1.官网下载zip安装包 官网地址https://www.mongodb.com/download-center/community?jmp=nav,现在windows系统一般都是64位的,选好版本. ...

  4. jmeter 命令行模式(非GUI)运行脚本,察看结果树结果为空,解决办法;

    jmeter的bin目录下,打开命令窗口,执行jmeter -n -t jmeter脚本 -l 结果: 执行结束后,聚合报告打开结果,显示错误率100%:察看结果树中打开结果,显示无数据: 解决办法: ...

  5. Django学习路

    1.脚本不能随便运行,没准 linux 运行完就上不去了 2.pip 在 linux 上 写 pip3 同理 python 写为 python3 3.在 pycharm 上安装库之后,在命令提示符中依 ...

  6. PHP zip_entry_compressionmethod() 函数

    定义和用法 The zip_entry_compressionmethod() 函数返回 zip 档案项目的压缩方法.高佣联盟 www.cgewang.com 语法 zip_entry_compres ...

  7. PHP min() 函数

    实例 通过 min() 函数查找最小值: <?php高佣联盟 www.cgewang.comecho(min(2,4,6,8,10) . "<br>");echo ...

  8. C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?

    C语言被忽视的一些小东西!C语言基础教程之错误处理. C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据.在发生错误时,大多数的 C 或 UNIX 函数调 ...

  9. SpringBoot学习之整合Mybatis

    本博客使用IDEA开发工具,通过Maven构建SpringBoot项目,初始化项目添加的依赖有:spring-boot-starter-jdbc.spring-boot-starter-web.mys ...

  10. Docker这些none:none的镜像,难道就不配拥有名字吗

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 搞容器开发一段时间后,想看看都有哪些镜像,执行了一下docker images -a,蒙圈了,有一堆<none> ...