我在我的 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 ×1