MySQL MyISAM表结构的恢复方法是怎样的呢?这是很多人都提过的问题,下面就为您详细介绍MySQL MyISAM表结构的恢复方法,供您参考。
MySQL MyISAM类型的表恢复相对比较简单。
同样先假定需要恢复的表的FRM文件为test_myisam.frm,表结构为
- mysql> create table test_myisam
- -> (A int(11) default NULL,
- -> B varchar(30) default NULL,
- -> C date default NULL) engine=myisam;
- Query OK, 0 rows affected (0.05 sec)
恢复过程如下:
1. 直接将test_myisam.frm拷贝到正常数据库对应的数据目录下。这时测试
- mysql> show tables;
- +--------------+
- | Tables_in_aa |
- +--------------+
- | test_innodb |
- | test_myisam |
- +--------------+
- 3 rows in set (0.00 sec)
- mysql> desc test_myisam;
- ERROR 1017 (HY000): Can't find file: 'test_myisam' (errno: 2)
发现只能通过show tables命令看见表名,但是表结构还是没有恢复,desc命令报错。
2. 在与test_myisam.frm同一目录建立以下2个文件,文件内容可以为空:
test_myisam.MYD test_myisam.MYI
3. 在MYSQL命令行使用MYSQL本身的数据表恢复命令repair命令恢复表,如下:
- mysql> repair table test_myisam USE_FRM;
- +-----------------+--------+----------+----------+
- | Table | Op | Msg_type | Msg_text |
- +-----------------+--------+----------+----------+
- | aa.test_myisam | repair | status | OK |
- +-----------------+--------+----------+----------+
- 1 row in set (0.00 sec)
根据结果可以知道,恢复命令执行成功,下边用desc命令测试下:
- mysql> desc test_myisam;
- +-------+-------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+-------------+------+-----+---------+-------+
- | A | int(11) | YES | | NULL | |
- | B | varchar(30) | YES | | NULL | |
- | C | date | YES | | NULL | |
- +-------+-------------+------+-----+---------+-------+
- 3 rows in set (0.02 sec)
果然恢复成功了。
相关推荐
- **数据/结构选择性导出**:`--no-create-info`和`--no-data`分别用于仅导出数据或仅导出表结构。 #### InnoDB与MyISAM表的备份差异 - **MyISAM表**:由于数据以文件形式存储,备份相对简单,可使用上述任何一种...
本文将详细介绍如何在MySQL中批量压缩MYISAM表,并提供一个使用shell脚本的示例。 首先,我们要理解MYISAM表的压缩原理。MySQL提供了两个工具——myisampack和myisamchk,它们可以帮助我们完成表的压缩和解压缩。...
相较于InnoDB,MyISAM表的结构恢复更为简单直接。具体步骤如下: 1. **复制.frm文件**: - 同样地,从一个存在的MyISAM表目录(例如`test`数据库下的某个表)中复制`.frm`文件到另一个数据库(例如`tmp`)的数据...
对于MyISAM表,由于其存储为文件形式,备份相对简单,上述方法皆可适用。而InnoDB表则保存在一个或多个数据文件中,备份通常更复杂,可以采取复制数据文件、备份二进制日志(binlog)或使用`mysqldump`。 `...
本软件适合于操作系统崩溃后将mysql数据目录拷贝出进行恢复,在恢复前需要使用之前备份的数据库结构新建空库,然后将还原文件的数据恢复到新库,目前只能恢复InnoDB引擎、MyISAM引擎 表。
* --no-data:不导出任何数据,只导出数据库表结构。 * --opt:是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-...
恢复过程则涉及将备份的SQL脚本导入到MySQL服务器,或直接替换数据文件(对于MyISAM表)。对于InnoDB表,需要确保在恢复过程中遵循正确的顺序,特别是当涉及到binlog时,以避免数据不一致。 总之,UNIX环境下的...
4. **重建表结构**:根据查询到的元数据,可以手动创建相同的表结构,包括字段、主键、外键、索引等。 5. **利用`binlog`恢复数据**:使用`mysqlbinlog`工具,根据binlog的时间戳定位到误删表的DDL语句之前,并将...
在MySQL中,对数据库表结构进行修改是一项常见的任务,它涉及到数据库的设计优化或者为了满足新的业务需求。以下是对标题和描述中提及的各种修改表结构操作命令的详细解释: 1. **删除列**: 使用`ALTER TABLE`...
### MySQL表结构设计详解 #### 一、数据场景 **1、表结构简介** 表结构设计是MySQL数据库设计的核心组成部分,它直接关系到数据的有效存储与高效查询。一个清晰合理的表结构不仅能够提升应用程序的性能,还能降低...
总结来说,“frm文件结构恢复2.0”是一个针对MySQL数据库的恢复策略,主要针对丢失或损坏的表结构。通过解析.frm文件,可以重建表的定义,但无法恢复数据,除非同时有对应的数据文件。在进行此类操作时,一定要谨慎...
- **显示表结构:** `DESCRIBE MYTABLE;` - **向表中添加记录:** `INSERT INTO MYTABLE VALUES ('hyq', 'M');` - **从文本文件导入数据到表:** `LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;` - **...
- MyISAM使用固定的表结构,每个表都有自己的数据文件和索引文件;InnoDB使用表空间存储数据,所有表数据都存储在一个或多个共享的表空间文件中。 - InnoDB的这种设计使得它更适合于大型数据库应用,因为可以更...
MySQL存储引擎--MyISAM与InnoDB区别 ...在InnoDB中,可以使用dump和binlog来恢复数据,而MyISAM则需要手动恢复数据。 MyISAM和InnoDB存储引擎都有其优缺点,选择哪种存储引擎取决于实际应用场景和需求。
5. **表结构管理与数据类型**:教授如何定义表结构,选择适合的数据类型,以及创建表结构。 6. **表记录操作**:包括插入(增)、删除(删)、更新(改)记录,以及索引的创建和使用,提高数据查询效率。 7. **...
`myisamchk`作为MySQL提供的一个强大工具,对于维护和恢复MyISAM表具有不可替代的作用。通过了解其基本使用方法和注意事项,DBA和开发者可以更加高效地管理和优化MySQL数据库。在未来,虽然MySQL的发展重点已经转向...