MySQL Datadir Change: Table Exists but Inaccessible
针对 SHOW TABLES 中出现的表但返回存在错误的复杂问题访问后发现了解决办法。
重新定位MySQL数据目录后,出现了一个特定的数据库这种异常现象。尽管使用 SHOW TABLES 成功连接并列出了数据库中的表,但尝试检索数据会导致错误消息“表 'database.TABLE_ONE' 不存在。”
最初的猜测将此行为归因于 SHOW TABLES 仅验证文件存在而不验证文件完整性。但是,已经确定了不同的原因。
使用命令“cp -r /path/to/my/database /var/lib/mysql/new_database”直接复制数据库目录时,会出现此问题。如果数据库使用 InnoDB 表,则会出现此特定错误。
解决方案在于确保 ib* 文件(例如 ibdata1、ib_logfile0、ib_logfile1)存在于 MySQL 数据目录的根目录中。复制这些关键文件后,无法访问的问题得到解决,表访问也恢复了。
以上是MySQL数据目录移动:为什么SHOW TABLES显示不存在的表?的详细内容。更多信息请关注PHP中文网其他相关文章!