MySQL 表示 : Table doesn't exist in Sequel Pro

标签 mysql database insert create-table sequelpro

我已经使用 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/

相关文章:

c# - 从 C# 中具有相同主键的两个表中获取不同的列值

java - Apache Derby 插入速度很慢

android - 我应该怎么做才能将数据从 json 插入到 Android 中的 sqlite 中

python - 使用 Django 将数千条记录插入 SQLite 表的有效方法是什么?

mysql - mysql 中查询的简写符号

php - 无法执行在 phpMyAdmin 中运行的 mysql

php - fastcgi 中的持久数据库连接

android - 安装 whatsapp 时获取联系人会提供重复的条目

mysql - SQL 连接数据库列表

python - 通过 Python 在 CSV 的第二行插入新行