【问题标题】:Not being able to reach MySQL data无法访问 MySQL 数据
【发布时间】:2018-07-04 22:06:09
【问题描述】:

我一直在使用包含 MySQL、PHP、Apache24 和 phpMyAdmin 功能的 AppServ。

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

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

提前致谢。

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

【问题讨论】:

  • 请创建一个存档并上传到某处并输入您的问题。让我们尝试恢复并提供 sql 转储。或者加我Skype:anarjafarov我会帮你
  • 你所说的“存档”是什么意思?
  • 我的意思是把那个文件放在某个地方,我会下载并尝试修复它。
  • 你的意思是数据文件?
  • 我在 Skype 中添加了你。请检查!

标签: mysql database phpmyadmin appserver


【解决方案1】:

要从.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) 使用某些 gui 或仅通过终端导入 create_table.txt

mysql -u root -p soru_sor_recover < create_table.txx

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

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) 启用表空间,进入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

【讨论】:

  • 你的每一个字都很棒。非常感谢您的所有这些意愿!
猜你喜欢
  • 2020-06-12
  • 2010-12-10
  • 2013-04-14
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2014-04-12
相关资源
最近更新 更多