有谁知道什么条件下可以收到1146: Table '<database>.<table>' doesn't exist
当您的表确实存在时出现错误?
我在 5 台服务器上使用相同的代码,只有我最近租用的一台服务器显示此错误,因此我怀疑这可能是某种设置或安装错误。我可以从命令行执行我的sql语句。显然,我也可以从命令行查看该表。当我建立连接时,我没有收到任何连接错误(顺便说一句,我使用的是 mysqli)。
任何帮助,将不胜感激。
精确查询:
$sql = "SELECT DISTINCT(mm_dic_word) AS word FROM spider.mm_dictionary WHERE mm_dic_deleted=0";
这恰好发生在我身上,过了一会儿,我在一篇博客文章中找到了答案,也想把它放在这里。
如果您从以下位置复制 MySQL 数据目录/var/lib/mysql
to /path/to/new/dir
,但仅复制数据库文件夹(即mysql
, wpdb
, ecommerce
等)并且您确实有 InnoDB 表,您的 innodb 表将显示在“显示表”中,但对它们进行查询(select
and describe
)将会失败,并出现错误Mysql error: table db.tableName doesn't exist
。你会看到.frm
db 目录中的文件,想知道为什么。
对于 InnoDB 表,复制很重要ib*
文件,就我而言是ibdata1
, ib_logfile0
, and ib_logfile1
。一旦我完成传输并确保复制这些内容,一切都会按预期进行。
If your my.cnf
文件包含innodb_file_per_table
the .ibd
文件将出现在 db 目录中,但您仍然需要ib*
files.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)