小编san*_*han的帖子

引擎中不存在表

我在我的 mysql 数据库中收到一个奇怪的错误:

SELECT * FROM mytable
Run Code Online (Sandbox Code Playgroud)

返回:

ERROR 1932 (42S02): Table 'mydb.mytable' doesn't exist in engine
Run Code Online (Sandbox Code Playgroud)

我可以确认这些表确实存在于本地文件系统中,show tables;并且确实返回了我感兴趣的表。

show tables;

+-----------------+
| Tables_in_mydb  |
+-----------------+
| presets         |
| mytable         |
+-----------------+
Run Code Online (Sandbox Code Playgroud)

和选择:

select * from mytable;

Table 'mydb.mytable' doesn't exist in engine. 
Run Code Online (Sandbox Code Playgroud)

错误完全没有意义,几天前我一直在使用这个表,没有任何问题。我没有移动桌子。我该怎么办?

在上述错误出现之前,我收到了一个错误:

用户 'root'@'localhost' 访问被拒绝(使用密码:YES),但我成功更新了密码。我不知道是什么触发了这个错误,因为我没有玩过密码。

但是,当我尝试修复此错误时,我已将权限设置/Applications/XAMPP/xamppfiles/var/mysql为对所有人进行读/写。

我可以物理访问数据库的 .frm 和 .ibd 文件。我相信我使用 InnoDB 存储引擎。

更新:

show table status 返回一个非常奇怪的输出:

+-----------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+------------------------------------------------------+
| Name            | Engine | Version | Row_format | Rows | Avg_row_length | …
Run Code Online (Sandbox Code Playgroud)

mysql

7
推荐指数
1
解决办法
5万
查看次数

标签 统计

mysql ×1