1

问题:我的数据库主机突然将我的 mysql 数据库从一台服务器切换到另一台服务器。不幸的是,我有 1 个运行 ISAM 的表,所有其他表都是 MyISAM。从一台服务器切换到另一台服务器后,ISAM 表已失效!

尝试从死表中选择时,PHP 发送“查询期间与 MySQL 服务器的连接丢失”。

在 PHPMyAdmin 中,健康表具有相应的列值(记录、类型、排序规则) 885 MyISAM latin1_swedish_ci

死表只是在三列中写满了“正在使用”。

如果我尝试运行查看表的结构:

显示完整的字段 table_name

我得到一个:1017 - 找不到文件:'table_name'(错误号:2)

谢谢!

4

1 回答 1

0

我听说有人说 ISAM 文件取决于操作系统和 mysql 版本,而 MyISAM 文件没有那种依赖关系?实际上我不知道文件是否已损坏,或者它是否切换到杀死表的新操作系统。我尝试过使用 mysql 3.23、4.01 和 5.1。高于 3.23 isamchk 寻找一个 .MYD 文件,所以我认为 ISAM 引擎在这个版本之后就出来了。使用 3.23 中的 isamchk 和 -e(扩展检查)或 o-(安全恢复),控制台应用程序在“检查删除链”命令之后就死了。

尝试在 mac 或 linux 或 freebsd(db 来自)上运行 isamchk 是一个想法吗?还是实现都一样?

谢谢

于 2010-11-11T08:17:16.130 回答