什么是以及如何从我的数据库中删除表空间错误?

Siz*_*ode 3 mysql mysql-workbench

由于加载问题,我的数据库中的一个表被破坏了.我放弃了桌子,现在我想再次创建桌子.

我收到这个错误:

ERROR 1813:表格的表空间zorkif.sys_user_accounts'存在.请在IMPORT之前丢弃表空间.

SQL语句:

CREATE  TABLE `zorkif`.`sys_user_accounts` (
    `UserID` INT NOT NULL AUTO_INCREMENT ,    
    PRIMARY KEY (`UserID`) ,    
    UNIQUE INDEX `UserID_UNIQUE` (`UserID` ASC)
)
Run Code Online (Sandbox Code Playgroud)

什么是表空间以及如何丢弃此表空间?我必须在查询中运行任何命令吗?如何处理这个问题?

小智 7

这适用于我,但我在本地服务器中使用它.

例如,打开安装xampp的目录

C:/xampp/mysql/data/...
Run Code Online (Sandbox Code Playgroud)

选择要删除的表空间的文件夹(它类似于数据库名称),然后删除带扩展名的文件idb.仅删除与要创建/删除的表对应的一个文件.

在我的情况下我的文件是karyawan.idb,

希望这对你有用.


小智 5

我花了很长时间在我的一个生产数据库上解决这个问题。以下步骤实际上非常干净地解决了问题:

-> deactivate your app/page - any requests to your db (if you dont have a service mode in your app - build one :P)
-> mysqldump your db (optionally with --routines=true);
-> kill the folder with db name
-> create schema db name;
-> drop schema db name;
-> restart mysql (service mysql restart - or similar depending on your os)
-> create schema db name;
-> mysql import your previously created dump;
Run Code Online (Sandbox Code Playgroud)


Yog*_*har 0

在创建此表之前运行此查询以删除TABLESPACE

DROP TABLESPACE `zorkif`.`sys_user_accounts`

TABLESPACE can contain one or more data files, providing storage space for tables.
Run Code Online (Sandbox Code Playgroud)

  • 错误代码:1478。表存储引擎“InnoDB”不支持创建选项“TABLESPACE 或 LOGFILE GROUP” (2认同)