我已经使用 root 在 sequel pro 中创建了一个 GameCenter 类型的数据库,但由于某种原因,我在连接到数据库并尝试访问表时时不时地遇到以下错误:
An error occurred while retrieving the information for
table 'Achievement'. Please try again.MySQL said: Table 'gamecenter2.achievement'
doesn't exist
我环顾四周,大多数人都说这是将数据库从一个地方复制到另一个地方时出现的问题,但我没有这样做。
在使用 MySQL 的终端中,数据库和表都显示出来了,但是在尝试访问表的内容时出现了同样的错误:
SHOW COLUMNS FROM Achievement;
ERROR 1146 (42S02): Table 'gamecenter2.achievement' doesn't exist
任何帮助都将不胜感激,因为一遍又一遍地运行 CREATE TABLES 和 INSERT 变得非常烦人!
最佳答案
我最近遇到了同样的问题(并且在 sequel pro 中出现了同样的错误消息)并且后来发现这是因为某些类型的 MySQL 数据库(即那些使用 InnoDB 的数据库)将单个表的实际数据存储在文件外部名为“ibdata1”(您可以在此处阅读更多信息:https://dba.stackexchange.com/questions/15531/why-does-innodb-store-all-databases-in-one-file)。因此,如果您使用时间机器为您的数据库恢复单个文件夹,您实际上只是在恢复空的数据库架构,里面没有好东西。如果您还没有恢复该“ibdata1”文件以及相应的“ib_logfile”文件,它将无法找到数据。解决方案是确保您还恢复了这些文件(或最近的良好副本)。
还要确保在恢复任何内容之前停止 mysql 服务,即从命令行“mysql.server stop”(或者“launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist”,如果你已经使用自制软件安装了 mysql)。
关于MySQL 表示 : Table doesn't exist in Sequel Pro,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665263/