有谁知道在什么情况下您会收到 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";
原文由 Troy Knapp 发布,翻译遵循 CC BY-SA 4.0 许可协议
基本上,我认为我遇到的问题是由于不同的密码哈希长度造成的。在我的例子中,我得到了一个新服务器,在它上面做了一个完整的 mysql 转储,它也传输了密码和用户信息。新服务器已经用具有 16char 长度散列的 root 用户初始化,但我的旧服务器使用较新的 32char 散列长度。
我不得不进入 my.conf 将旧密码设置为 0(否则每次我尝试更新数据库时,新更新的长度为 16 个字符)。然后我通过命令
UPDATE mysql.user SET password=PASSWORD('password here');
将所有密码更新为相同,然后我刷新了权限。显然,让每个用户都使用相同的密码是一个非常糟糕的主意,所以在确认它可以正常工作后,我一个一个地更改了它们。
在我遇到这个解决方案之前,我输入了一篇博客文章,其中介绍了我所做的其他一些 在这里 不起作用的事情(以防万一这些更改中的一个或多个影响了我的结果)但是,我认为上面解决方案是完整的…但我没有尝试重现错误,所以我不能 100% 确定。