事情经过

公司服务器上的 mysql 数据库突然连不上了,多方查探,无果,一同事直接根据网上的教程初始化数据库,结果就是可以连,但数据没了。

最初连接数据库报错:

QQ图片20180913112116.png
QQ图片20180913112116.png

启动报错:

ERROR! The server quit without updating PID file (/usr/local/mysql/var/iZ23nn7qd3iZ.pid).

连接报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

查看 存放数据文件下的xxx.err文件,内部日志:

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

同事执行过的初始化指令:
mysql安装目录下:

./scripts/mysql_install_db --default-file=/etc/my.cnf

解决方案

看网上的文件删除恢复的帖子,提到 extundelete 软件可以恢复之前被删除了的文件。但不敢尝试,一个是服务器只有一个盘,恢复的文件只能存在当前盘下,这样二次恢复有可能就做不了。另外一个原因是,没把握能恢复回来,不确定初始化或者其他操作是否能够像删除一样恢复回来,也没用过这个软件,不确定效果。纠结。

附上 centos 自带的一个恢复指令(尝试过测试有效,但对现在的情况下的文件没有效果):debugfs 恢复刚删除的文件(centos7 以下),centos7 以上无效,文件夹恢复无效。