原因

昨天在开发环境上装了数据库5.7.20 。原本运行的是5.6的版本。
装好5.7后。想把数据库停掉。结果不小心执行了/usr/local/mysql-5.7/support-files/mysql.server stop。
这时候默认读取的是/etc/my.cnf的配置文件。
但是把5.7的数据起来之后配置文件被我还原成5.6的配置文件了。所以这时候停止的却是5.6的数据库。

解决过程

现在的问题来了。再用/etc/init.d/mysqld start已经不能启动5.6的数据库了。
试过把5.6的data目录下的库文件复制到其它实例发现能找到表但表中的数据没了。

最后把/application/mysql/data/ib_logfile0 /application/mysql/data/ib_logfile1 文件移动到/tmp/目录下。
重新执行/etc/init.d/mysqld start数据库恢复正常。

分析

看来是5.7关闭MySQL的时候破坏了logfile,启动的时候依赖这个文件去恢复数据
挪开之后,相当于这两个文件重新初始化了。