美文网首页
DB cluster数据删除

DB cluster数据删除

作者: 酸辣粉_2329 | 来源:发表于2019-07-26 06:46 被阅读0次

当数据库的磁盘满了,需要drop一些比较大的表,但是DROP TABLE 不管用,因为数据库不能写入。

背景

Database: my_db
Table name: my_tbl
Table size: 300GB+

保存了show create table my_tbl的结果
删除了对应的my_tbl.ibdmy_tbl.frm文件

删除之后,想重新把table建上,可能会遇见以下错误

ERROR 1813 (HY000): Tablespace '`XXX`.`XXXXXX`' exists.

尝试

ALTER TABLESPACE [tablespace_name] DROP DATAFILE [file_name]:不管用。


解决方法:

  1. 创建一个新数据库my_db_2,一定是要在同一个MySQL的server上。
  2. 在新db中,运行保存下来的create table语句,此方法可以在当前数据库文件里生成两个对应的文件my_tbl.ibdmy_tbl.frm
  3. my_tbl.frm文件拷贝到旧的数据库(my_db)目录下
  4. chown mysql:mysql my_tbl.frm
  5. 在旧db(my_db)中,运行DROP TABLE my_tbl,此时就能把表删除,然后再用保存的语句创建同样的表。

Reference:

https://stackoverflow.com/a/12086798/5755004

InnoDB: You can drop the orphaned table inside InnoDB by
InnoDB: creating an InnoDB table with the same name in another
InnoDB: database and copying the .frm file to the current database.
InnoDB: Then MySQL thinks the table exists, and DROP TABLE will
InnoDB: succeed.

相关文章

  • DB cluster数据删除

    当数据库的磁盘满了,需要drop一些比较大的表,但是DROP TABLE 不管用,因为数据库不能写入。 背景 Da...

  • 数据库笔记

    数据库笔记: Cluster --> Catalog --> Schema --> Table db --> sc...

  • 课时41-课时45笔记.md

    课时41 delete()删除删除一个集合:db.collection.deleteOne()删除一条数据db.c...

  • mangodb1

    dashow dbs切换数据库:use dbname查看数据库信息:db.stats()删除:db.dropDat...

  • SQL语句大全(更新中)

    基础 创建数据库 CREATE DATABASE db_name 删除数据库 DROP DATABASE db_n...

  • mongodb基本操作

    1、创建数据库 use yu 2、删除数据库 db.dropDatabase() 3、插入数据 db.yu.ins...

  • 通过node服务连接MongoDB数据库以及基本操作

    先使用node连接上数据库 stu_db库(集合)中插入数据 stu_db库(集合)中删除数据 stu_db库(集...

  • MongoDB基础操作

    创建数据库 use db 删除数据库 db.dropDatabase() 查看所有数据库 show dbs 创建集...

  • MySQL - 用户及权限

    创建用户 删除用户 删除用户并取消权限 将删除user表的用户数据将删除db表和table_priv表的权限数据 ...

  • 怎么删除特殊字符的数据库

    删除数据库 drop tabatase db_name;这条命令即可删除 但是如果数据库有特殊字符。删除就会报错语...

网友评论

      本文标题:DB cluster数据删除

      本文链接:https://www.haomeiwen.com/subject/zhulrctx.html