MySQL创建一个表

时间:2014-07-12 15:14:06

标签: mysql database

我是全新的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

1 个答案:

答案 0 :(得分:0)

当数据库损坏或导入中断时,可能会发生这种情况。但是,这里发生的是

  1. 有一个users.ibd文件(这意味着innodb表空间中有一个用户表)
  2. 没有users.frm(这意味着信息模式中没有用户表)。
  3. 如果您在本地运行,一种方法是手动删除/ var / lib / mysql中的users.ibd。只有在启用了每个表文件选项的情况下才能运行此选项。

    您也可以尝试从命令提示符

    执行此操作
    ALTER TABLE smartsurfers.users DISCARD TABLESPACE
    

    您也可以尝试停止mysqld并运行mysqlcheck

    mysqlcheck -u youruser -p smartsurfers