创建已经丢62616964757a686964616fe58685e5aeb931333433656631失的表结构

先要安装 mysql-utilities。

// RedHatyum -y install mysql-server mysql-utilities// Debianapt install mysql-utilities

使用 mysqlfrm 从 .frm 文件里面找回建表语句。

// 分析一个 .frm 文件生成建表的语句mysqlfrm --diagnostic /var/lib/mysql/test/t1.frm// 分析一个目录下的全部.frm文件生成建表语句root@username:~# mysqlfrm --diagnostic /var/lib/mysql/my_db/bk/ >createtb.sqlroot@username:~# grep "^CREATE TABLE" createtb.sql |wc -l124

可以看到一共生成了 124 个建表语句。

有很多时候也可以从其它库里面生成建表语句,如同一个应用的其它数据库或不同的测试环境,采用下面的 mysqldump 生成建表语句:

mysqldump --no-data --compact my_db>createtb.sql

登录 MySQL 生成表。

mysql> create database my_db;mysql> use my_dbDatabase changedmysql> source createtb.sqlQuery OK, 0 rows affected (0.07 sec)......

导入旧的数据文件

将新建的没有包括数据的 .ibd 文件抛弃

root@username:/var/lib/mysql/my_db# ll *.ibd|wc12411167941root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read a; do mysql -e "ALTER TABLE my_db.$a DISCARD TABLESPACE"; doneroot@username:/var/lib/mysql/my_db# ll *.ibd|wcls: cannot access '*.ibd': No such file or directory000

可以看到所有的 .idb 文件都已经被抛弃了。然后把旧的有数据的 .ibd 文件拷贝到这个 my_db 目录下面,别忘了把属主改过来:chown mysql. *,再把这些数据文件 import 到数据库中。

root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read a; \do mysql -e "ALTER TABLE my_db.$a import TABLESPACE"; done

导入完成后检查表

使用 mysqlcheck 对数据库 my_db 下的所有表进行检查:

root@username:/var/lib/mysql/my_db# mysqlcheck -c my_dbmy_db.cdp_backup_point                             OK......

所有的表都导入成功。

mysql去除重复数据 重建表_删除掉mysql 的.ibd,.frm,ibdata1,ib_logfile0和ib_logfile1文件后再drop表。然后重建此表,有问题吗...相关推荐

  1. mysql去除重复数据

    mysql去除重复数据 根据one列查询重复的数据(根据单列判断重复) SELECT * FROM tab_test  WHERE ONE IN (SELECT ONE FROM testdelete ...

  2. MySQL去除重复数据,保留一条数据

    于我而言,这篇文章提供帮助最大的语句是 DELETE c1 FROM contacts c1 INNER JOIN contacts c2 WHEREc1.id > c2.id AND c1.e ...

  3. mysql从挂了数据怎么恢复_详解MySQL误操作后怎样进行数据恢复

    一.开启binlog. 首先查看binlog是否开启 mysql> show variables like "log_bin"; +---------------+----- ...

  4. mysql视图中数据如何修改_怎么修改Mysql数据表中的视图

    本篇文章主要给大家介绍mysql数据表中怎么进行修改视图的操作. 关于mysql视图的基础知识,在之前的文章中也给大家详细介绍过了.这里我们再给大家先简单介绍下mysql视图. 通俗的说,视图是由SE ...

  5. mysql去除重复数据保留一条_MySQL中删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...

  6. mysql中如何去除重复数据_MySQL如何去除重复数据?

    这篇文章主要介绍了MySQL 去除重复数据实例详解的相关资料,需要的朋友可以参考下 MySQL 去除重复数据实例详解 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复 ...

  7. mysql类似于excel的删除重复项_删除重复数据 excel去除重复数据 怎么筛选重复数据 excel重复数据合并...

    本篇文章主要介绍了"删除重复数据",主要涉及到重复数据方面的内容,对于MySql感兴趣的同学可以参考一下: 最近因为发现数据库中的表有脏数据,需要维护.这些脏数据就是重复数据,需要 ...

  8. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

    关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...

  9. mysql中如何去除重复数据_mysql数据库如何去除重复数据

    mysql数据库去除重复数据的方法:1.查询需要删除的记录,会保留一条记录:2.删除重复记录,只保留一条记录,代码为[delete a from test1 a, (...)as bid from t ...

最新文章

  1. 调用 fork() 两次以避免僵死进程
  2. [译]ECMAScript:ES.next和ES6以及ES Harmony之间的区别
  3. 指针变量和引用变量的区别_指针Ⅰ--变量的定义
  4. [转] Boost智能指针——scoped_ptr
  5. 2016年系统集成项目管理工程师最新考试说明
  6. 稳定性测试怎么测_心理测试:选择你喜爱的一种食物,测你2020年的运势怎么样...
  7. 【Kafka】Failed to send data to Kafka: Failed to allocate memory within the configured max blocking
  8. SQL笔记三:MySQL常用函数
  9. 闩锁效应的产生原因及解决办法
  10. 主成分分析结果成分不显著_spss主成分分析结果解读
  11. 【 华为云计算专家 HCIE-Cloud Computing V3.0 预发布】
  12. 爬虫(19)pipline补充+item的讲解+古诗文案例
  13. 酷睿i7 8565u属于什么级别 i78565u相当于什么水平
  14. 面试问到关于数据库的问题,看了这篇够用了!
  15. 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据
  16. 做测试,如何提升“话语权”?
  17. python+selenium,常见报错与解决方法
  18. [生存志] 第31节 盘古开天地
  19. 技术人,如何找到自己的第二职业?
  20. poj2240 - Arbitrage

热门文章

  1. IDLE 放置奇兵 算法 地牢 记录
  2. python matplotlib.pyplot.scatter() 中的cmap参数是什么意思?
  3. 初学__Python——用包来管理多个模块
  4. php连mssql 中文乱码,PHP连接MSSQL显示中文时为乱码_PHP教程
  5. Java多线程(三):使用ThreadPoolExecutor创建线程池
  6. c++ 多线程 类成员函数_多线程(C++/Python)
  7. linux mv 环境变量,linux环境变量 cp mv 以及文档查看的几个命令
  8. c 服务器文件是否存在,c服务器文件是存在
  9. java 数据库提交,java.sql.Statement向数据库提交的语句不可以是SQL语句的()。
  10. java ppt 转图片格式_Java PPT(X)转图片、PDF和SVG