记一次mysql数据库无法启动,数据恢复的解决办法

机器环境

宝塔linux面板5.3.0

linux7.3

nginx1.12

mysql5.5

php5.6+7.2

就在刚刚,习惯性的打开宝塔查看机器运行状态。

然后发现mysql状态中查询缓存命中率有些低,就手动调整了下查询缓存,调高了些。

然后。。。数据库炸了,无法启动

这时候第一反应是马上备份数据库,这时候通过宝塔面板已经无法备份数据库了,数据备份出来全是20B的数据。

随即直接将/www/server/data目录整个压缩备份,防止整个服务器出问题直接下载到了本地。

(备份data目录主要是因为宝塔面板的datadir目录定义到了/www/server/data目录,如下图)

mysql数据库数据文件地址
mysql数据库数据文件地址

然后尝试多种方式修复无果。

这时候因为已经将数据库数据备份好,直接把数据库卸载重装,之前用的mysql5.5版本,这次还装5.5防止其他意外情况发生。

mysql5.5安装好后将数据导入原来目录。然后重启mysql数据库。

有个问题就是,在宝塔面板上看不到数据库列表了。这个后面再测试。

此种方法理论上也适用于不同平台Windows/linux之间的数据迁移。不同数据库版本之间目前还没试过,不同版本应该会出问题。

但是不管何种情况,第一时间应该想到的是备份数据,至于备份哪些可以去网络上查查。

其他面板环境同理。

 

2017/12/22更新:

前面说宝塔数据库列表不显示数据库。

然后今天添加一个新网站发现不能添加数据库。

研究了下发现问题在于前后数据库的root密码不一样。

然后我所做的操作是,点击宝塔面板的“root密码”选项,如下图

宝塔数据库root密码
宝塔数据库root密码

点进去之后我们点一次“提交”即可。

然后在宝塔数据库列表点击下方的“从服务器获取”,同步一次数据库信息,列表就出来了。

宝塔面板同步数据库
宝塔面板同步数据库

然后我重新安装了phpmyadmin程序,应该不用重装直接重启此程序就可以。

然后还有个问题,在宝塔数据库列表里,数据库密码显示是空的,当然实际上不是空,只是这里不显示。不影响数据库使用。具体的解决方法后面再研究。

点击复制数据库密码,提示数据库密码为空。