MySQL数据库下.frm .MYD .MYI损坏恢复操作——筑梦之路

1. 对现有损坏的数据库文件进行备份

cp  -rp /var/lib/mysql /backup/

2. 数据目录和文件的说明

每一个数据库对应一个子目录,每个子目录中包含了对应于这个数据库中的数据表的文件。
每一个数据表对应三个文件,它们和表名相同,但是具有不同的扩展名。
tblName.frm文件是表的定义,它保存了表中包含的数据列的内容和类型。
tblName.MYD文件包含了表中的数据。
tblName.MYI文件包含了表的索引
(例如,它可能包含lookup表以帮助提高对表的主键列的查询)。要检查一个表的错误,只需要运行 myisamchk(在MySQL的bin目录下)并提供文件的位置和表名,或者是表的索引文件名:

# 执行对指定表的检查

# myisamchk /var/lib/mysql/dbName/tblName 
# myisamchk /var/lib/mysql/dbName/tblName.MYI

# 检查数据库中所有的表

# myisamchk /var/lib/mysql/dbName/*.MYI

# 检查所有数据库中的所有表

# myisamchk /var/lib/mysql/*/*.MYI

如果不带任何选项,myisamchk将对表文件执行普通的检查。如果你对一个表有怀疑,但是普通的检查不能发现任何错误,你可以执行更彻底的检查(但是也更慢!),这需要使用--extend-check选项:

# myisamchk --extend-check /path/to/tblName

对错误的检查是没有破坏性的,这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题 变得更糟。另一方面,修复选项,虽然通常也是安全的,但是它对你的数据文件的更改是无法撤消的。因为这个原因,我们强烈推荐你试图修复一个被破坏的表文件 时首先做个备份,并确保在制作这个备份之前你的MySQL服务是关闭的。


# 修复

myisamchk --safe-recover function_products.myi

要将.frm,.myd和.myi文件转换为.sql文件,首先需要了解这些文件的含义。这些文件MySQL数据库中存储表结构和数据的文件扩展名。 .frm文件MySQL数据库中的表定义文件,它包含表的结构信息,例如列名、列类型和约束等。 .myd文件MySQL数据库中的表数据文件,它包含了表中的实际数据。 .myi文件MySQL数据库中的表索引文件,它包含了表的索引信息,用于加快对表中数据的查询速度。 要将这些文件转换为.sql文件,可以按以下步骤进行操作: 1. 确保已经安装了MySQL数据库,并且可以通过命令行或图形界面工具访问数据库。 2. 打开命令行窗口或MySQL图形界面工具,连接到MySQL数据库。 3. 在MySQL命令行窗口或图形界面工具中,使用USE语句选择要导入数据的数据库。 4. 使用CREATE TABLE语句创建表结构,语法如下: CREATE TABLE 表名 (列名1 列类型1,列名2 列类型2,...,列名n 列类型n); 根据.frm文件的结构信息,逐个列出表的列名和对应的列类型。 5. 使用LOAD DATA INFILE语句导入数据,语法如下: LOAD DATA INFILE '文件路径' INTO TABLE 表名; 根据.myd文件的数据信息,将数据导入到表中。 6. 重复以上步骤,分别使用ALTER TABLE和CREATE INDEX语句添加索引,语法如下: ALTER TABLE 表名 ADD INDEX 索引名 (列名1,列名2,...,列名n); 根据.myi文件的索引信息,添加相应的索引。 最后,将以上步骤按照正确的顺序组合起来,就可以将.frm,.myd和.myi文件转换为.sql文件。记得在转换过程中,要确保文件路径和文件名的正确性,并根据实际情况进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值