首先,停止MySQL服务器,以确保对数据库文件的访问受到限制。然后,检查MySQL数据目录下的文件是否完整。您可以通过列出数据目录中的文件并检查每个文件的大小来执行此操作。如果您发现某个文件大小比它应该有的大小少,那么很有可能文件已经被删除或者已经损坏了。
$ ls -lh /var/lib/mysql/ total 2.0M -rw-r----- 1 mysql mysql 1.1K Sep 14 2017 auto.cnf -rw-r--r-- 1 mysql mysql 0 Sep 14 2017 db.opt drwx------ 2 mysql mysql 16K Sep 14 2017 mysql drwxr-xr-x 2 mysql mysql 4.0K Sep 14 2017 performance_schema -rw-r----- 1 mysql mysql 39 Sep 14 2017 private_key.pem -rw-r--r-- 1 mysql mysql 936 Sep 14 2017 public_key.pem -rw-r--r-- 1 mysql mysql 1.3K Sep 14 2017 server-cert.pem -rw-r--r-- 1 mysql mysql 874 Sep 14 2017 server-key.pem drwxr-xr-x 2 mysql mysql 4.0K Sep 14 2017 sys
如果您发现任何文件已经删除,请尝试找回它们以进行进一步的恢复。如果没有成功找回已删除的文件,您可以尝试将残留的文件重命名并将其移动到另一个位置。
$ mv /var/lib/mysql/ibdata1 /root/ibdata1.bck $ cp /root/ibdata1.bck /var/lib/mysql/
然后,重新启动MySQL服务器并将其连接到数据库。如果恢复成功,您应该能够在已删除的数据库中看到您的数据。