MySQL 表消失难题已解决
当 SHOW TABLES 显示数据操作(例如 SELECT)无法访问的表时遇到不一致情况,根本原因往往难以捉摸。一个潜在的罪魁祸首是损坏的表文件,SHOW TABLES 可能无法检测到该文件。
在一个特定实例中,用户在更改 MySQL 数据目录后遇到了此问题。尽管表的文件存在,但从中选择数据会导致错误:
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist
这种矛盾的行为导致人们猜测 SHOW TABLES 仅验证文件存在性,而不验证文件完整性。不过,问题的根源最终还是被发现了:
为了解决此问题,用户复制了这些文件进入新的数据目录,这成功地恢复了表的可访问性。这强调了在复制基于 InnoDB 的数据库时包含这些文件以确保其功能的重要性。
以上是为什么我的 MySQL 表出现在 SHOW TABLES 中而不出现在 SELECT 查询中?的详细内容。更多信息请关注PHP中文网其他相关文章!