多灾多难的美国灵车,多灾多难的7iNet😂
这次处理了差不多一个小时,剪贴板太多东西了,当时截的图都没有了. 下面配图会很少,有也是聊天记录里面复制出来的,见谅~
事先声明:这张表对于系统运行来说,我认为关系不大,所以最后是通过重建方式恢复的. 剧透一下,MYI文件整个丢了,也许把MYD文件复制回去能够恢复数据(?),反正我没试.
在没有日志和备份的情况下成功!
1 发现问题
灵车日常cpu起飞,按照惯例,我准备强制重启进入系统查占用,封机,一气呵成。
结果,这次出了点意外。登录Virtualizor时,我得到了一个报错:
Could not make the Query.
SELECT * FROM to_master
Array
(
[0] => HY000
[1] => 1017
[2] => Can't find file: 'to_master' (errno: 2)
)
灾难,开始了。
2 分析问题
进入/usr/local/emps/var/mysql/virtualizor目录下,观察到to_master表异常:
可以看到to_master没有和其他表一样有MYI索引文件,MYD文件结尾多了一个_19cb. 想必它发生了什么,但是我看不懂
不管了,硬着头皮上!
3 解决问题
① 命令行REPAIR TABLE,失败
什么情况?遇事不决,ctrl+a,拖出去bing一下!
搜到了一篇相关的文章:https://mellowhost.com/blog/could-not-make-the-query-virtualizor-error.html#:~:text=To%20solve%20this%2C%20we%20need%20to%20repair%20the,repair%20the%20table%3A%20Now%20the%20virtualizor%20shall%20work.
报错不一样,抱着试试的心态,我尝试进命令行repair了一下,不出意外,不行。
这里有一点,获取数据库密码的方式在这篇文章里有:
grep dbpass /usr/local/virtualizor/universal.php
记住他,待会要考.
② 官方文档repair database工具,失败
文档地址:https://www.virtualizor.com/docs/admin/repair-database/.
对于目前的情况来说,无效。不过在提前备份数据(mysqldump导出sql文件)时,他抛出了其他报错:task表同样出现了一些问题. 不过好消息是,这张表通过方法一成功解决了.
③ 重建表,成功
摆烂,只要能恢复服务,不择手段. 首先,我们需要找到安装的sql文件. 找这玩意花了我好长时间... virtualizor的安装程序install.php是ioncube加密的,我也不知道怎么解.
通过下载安装脚本(http://files.virtualizor.com/install.sh),找到服务器上的安装日志文件,幸运的是没有自动删除.
在日志文件中不断搜索,就能找到virtualizor本体的压缩包,(话说我当时在那边研究emps.tar.gz😂真是傻啊),里面就能找到virtualizor.sql了.
定位到to_master处,得到建表语句:
CREATE TABLE `to_master` (
`tables` varchar(100) NOT NULL DEFAULT '',
`columns` varchar(100) NOT NULL DEFAULT '',
`id` varchar(32) NOT NULL DEFAULT '0',
`unique_column` varchar(100) NOT NULL DEFAULT '',
`value` MEDIUMTEXT,
UNIQUE KEY `tables` (`tables`,`columns`,`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
先到/usr/local/emps/var/mysql/virtualizor目录下,把to_master有关的文件删除掉: rm to_master*
,
进入命令行,把表drop掉后执行建表语句.
尝试登录virtualizor后台,发现成功登录,事件告一段落.
关于方法三中提到的zip文件和sql文件,下载地址:https://drive.imxb.de/Blog-Resources/241227-%E8%A1%A8%E7%82%B8%E4%BA%86%EF%BC%8C%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F%E2%80%94%E2%80%94%E8%AE%B0%E4%B8%80%E6%AC%A1Virtualizor%E4%B8%BB%E6%8E%A7to_master%E8%A1%A8%E6%8D%9F%E5%9D%8F%E4%BF%AE%E5%A4%8D
灵车真的太可怕的... 比半路跳车的还吓人
你可能理解错了这里是什么意思😂