MySQL 如何从.frm 文件获取数据?

MySQL 如何从.frm 文件获取数据?

我认为我的 MySQL 表已损坏。在数据库中,我只能看到一个.frm文件,而没有文件.mdi.mdy文件。我该如何从这个.frm文件中恢复数据?

我认为我必须从ibdata1文件中获取数据?

答案1

文件中没有数据.frm;该文件仅包含表定义。但是,如果您没有运行 MyISAM 表,则预计不会有.MYD.MYD文件,因为它们仅用于 MyISAM 表。相反,数据将位于其他地方 — — 例如,对于 InnoDB 表,它将位于您的ibdata*文件中(或者,如果您已打开,则可能位于每个表的文件中file_per_table)。

答案2

.frm 文件实际上不包含任何数据——它只是表定义。您可以阅读具体内容这里

答案3

使用工具数据库

  1. 使用下载curl -s get.dbsake.net > dbsake
  2. 使其可执行chmod u+x dbsake
  3. 从 .frm 文件中检索信息./dbsake frmdump path/to/frm/file.frm,将输出类似以下内容:
--
-- Table structure for table `mytable`
-- Created with MySQL Version 5.7.28
--

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(1000) DEFAULT NULL,
  `url` varchar(1000) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

选项 2

您还可以通过以下方式启动 mysql 沙盒实例:

dbsake sandbox -D mysql-backup-dir/
~/sandboxes/sandbox_20200621_192450/sandbox.sh start
~/sandboxes/sandbox_20200621_192450/sandbox.sh mysql

相关内容