我是全新的MySQL玩家,当我删除“用户”表并重新重建时,我遇到了一个非常棘手的错误。我删除它的原因是:当我输入“SELECT * FROM users”之前,它显示表“users”不存在,但实际上它确实显示在当前数据库的表列表中。 在这里输入代码
mysql> create table users(
-> name VARCHAR(50),
-> password VARCHAR(50),
-> email VARCHAR(50),
-> online INT,
-> ip VARCHAR(50));
ERROR 1813 (HY000): Tablespace for table '`smartfsusers`.`users`' exists. Please DISCARD the tablespace before IMPORT.
mysql> select * from users;
ERROR 1146 (42S02): Table 'smartfsusers.users' doesn't exist
答案 0 :(得分:0)
当数据库损坏或导入中断时,可能会发生这种情况。但是,这里发生的是
users.ibd
文件(这意味着innodb表空间中有一个用户表)users.frm
(这意味着信息模式中没有用户表)。 如果您在本地运行,一种方法是手动删除/ var / lib / mysql中的users.ibd。只有在启用了每个表文件选项的情况下才能运行此选项。
您也可以尝试从命令提示符
执行此操作ALTER TABLE smartsurfers.users DISCARD TABLESPACE
您也可以尝试停止mysqld并运行mysqlcheck
mysqlcheck -u youruser -p smartsurfers