无法访问 MySQL 数据

Not being able to reach MySQL data

我一直在使用 AppServ,其中包括 MySQL、PHP、Apache24 和 phpMyAdmin 功能。

有一天,我不小心从我的计算机上卸载了我的 AppServ 服务,我不得不重新安装它。一切正常,直到我看到我的数据库无法像以前那样正常工作。

我无法访问我的数据,事故发生前我创建的网站也是如此。当我转到我的 phpMyAdmin 时,我可以清楚地看到我制作的结构,但看不到它们的内容,这就是问题所在。事实上,当我在目录中看到它们时,它们都站在那里。

提前致谢。

注意: AppServ 卸载过程不会删除您自己的数据。

要从 .frm 恢复数据库并从 .ibd 恢复内容,您必须执行以下操作:

1) 创建临时数据库以避免突然使用其他数据库。

CREATE DATABASE soru_sor_recover;

2) 从 .frm 文件生成 CREATE TABLE 转储(您需要安装 mysql-utilities from here);

mysqlfrm –diagnostic answers.frm >> create_table.txt
mysqlfrm –diagnostic categories.frm >> create_table.txt
mysqlfrm –diagnostic inbox.frm >> create_table.txt
mysqlfrm –diagnostic questions.frm >> create_table.txt
mysqlfrm –diagnostic users.frm >> create_table.txt

3) 使用一些图形用户界面或仅通过终端导入 create_table.txt:

mysql -u root -p soru_sor_recover < create_table.txx

4) 现在我们有 tables 但它们是空的。所以我们必须用恢复的 ibd 文件替换空 tables 的 .ibd 文件。所以我们需要丢弃 tablespace:

ALTER TABLE answers DISCARD TABLESPACE; 
ALTER TABLE categories DISCARD TABLESPACE; 
ALTER TABLE inbox DISCARD TABLESPACE; 
ALTER TABLE questions DISCARD TABLESPACE; 
ALTER TABLE users DISCARD TABLESPACE; 

5) 替换数据文件夹中的 .ibd 个文件并为该文件定义用户和组:

cp *.ibd /var/lib/mysql/soru_sor_recover
chown -R mysql:mysql /var/lib/mysql/soru_sor_recover/*.ibd

6) 重启mysql:

/etc/init.d/mysql restart

7) 启用 table 空格,转到 mysql 控制台:

ALTER TABLE answers IMPORT TABLESPACE; 
ALTER TABLE categories IMPORT TABLESPACE; 
ALTER TABLE inbox IMPORT TABLESPACE; 
ALTER TABLE questions IMPORT TABLESPACE; 
ALTER TABLE users IMPORT TABLESPACE; 

文档的原始来源is here