首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助将一些行恢复到mySQL数据库frm myd myi

需要帮助将一些行恢复到mySQL数据库frm myd myi
EN

Database Administration用户
提问于 2012-02-07 00:10:13
回答 2查看 1.4K关注 0票数 2

我在网站的几个部分使用一个mySQL数据库,其中一个部分不工作,当我转到该部分的链接时,它会给出错误"1146 error @第39行:表'database_name.table_name‘不存在“

我登录了PHPmyAdmin,在"table_name“的列表中丢失了”table_name“,似乎有人入侵并丢弃了它。

我从备份服务器获得了以下文件:

  • table_name.frm
  • table_name.myd
  • table_name.myi

我把所有这些文件打开到记事本中查看数据,frm和myi是可以理解的,可能是因为它们是结构,但是myd是可以理解的,因为它有数据。

现在,我想通过这3个文件恢复丢失的数据,但我不知道如何恢复。

EN

回答 2

Database Administration用户

发布于 2012-03-26 15:15:11

为了将名为MyISAM的table_name还原到database_name中,必须执行以下操作

)运行以下查询:show variables like 'datadir';

这将告诉您数据的基本目录是什么。对于这个例子,让我们使用默认值(/var/lib/mysql)

步骤2)将table_name.frm复制到/var/lib/mysql/数据库

步骤03)将table_name.MYD复制到/var/lib/mysql/数据库

步骤04)将table_name.MYI复制到/var/lib/mysql/数据库

步骤05) chown mysql:mysql /var/lib/mysql/database/table_name.*

就这样。不需要重新启动mysql,因为information_schema数据库非常敏感,并且非常快速地检测文件夹更改。

要确保mysql知道还原的表,请执行以下操作:

步骤06)运行此查询

代码语言:javascript
复制
SELECT * FROM information_schema.tables
WHERE table_schema = 'database_name'
AND table_name = 'table_name'\G

您应该会看到有关表大小和更改日期的信息。

)运行以下命令

代码语言:javascript
复制
use database_name
show tables;

您应该会在清单中看到还原的表

票数 1
EN

Database Administration用户

发布于 2012-03-26 14:04:51

Myisam引擎保存.myd索引中的数据,在.myi中保存数据,在.frm文件中保存结构,您只需将这些文件粘贴到特定数据库中的数据中,并重新启动mysql服务,然后就可以从该表访问数据。

在这种情况下,如果由于版本的更改可能会产生一些错误,比如dy,可以删除某些特性,或者在这种情况下它们可能添加了一些额外的特性,那么您需要运行mysql_upgrade实用程序,这个工具位于bin directry中,可以修复这些问题。

问候Deepak M

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/12400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档