如何利用myisamchk和mysqlcheck快速修复损坏的MySQL数据库

由于服务器的数据库硬盘空间满了,由于大量写入数据失败导致了出现“Duplicate entry '' for key 'username'”的错误。

如果,出现这样的mysql数据库错误很可能是mysql数据库索引出了问题。那么,什么是mysql数据库索引?

分析:索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性。否则就会产生这个错误。

一般发生在对数据库写操作的时候,例如Discuz!4.1论坛程序要求所有会员的用户名username必须唯一,即username 的索引是unique,这时如果强行往cdb_members表里插入一个已有的username的记录就会发上这个错误,或者将一条记录的username更新为已有的一个username。

比如某网友的dedecms网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为:

Table .dedecmsv4dede_archives is marked as crashed and should be repaired

提示说cms的文章表dede_archives被标记有问题,需要修复。

于是赶快恢复历史数据,上网查找原因。最终将问题解决。

解决方法如下:

找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:

myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI

然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。

那么,修复mysql数据库一般可以myisamchk工具或者mysqlcheck工具用这二种方法:

1、myisamchk工具

使用 myisamchk 必须暂时停止 MySQL 服务器。例如,我们要检修 discuz 数据库。执行以下操作:

# service mysql stop (停止 MySQL );

# myisamchk -r /数据库文件的绝对路径/*MYI

# service mysql start

myisamchk 会自动检查并修复数据表中的索引错误。

2、mysqlcheck工具

使用 mysqlcheck 无需停止 MySQL ,可以进行热修复。操作步骤如下:

# mysqlcheck -r discuz.*

# service mysql stop (停止 MySQL );

# myisamchk -r /数据库文件的绝对路径/*MYI

# service mysql start

myisamchk 会自动检查并修复数据表中的索引错误。

注意:无论是 myisamchk 还是 mysqlcheck ,一般情况下不要使用 -f 强制修复,-f 参数会在遇到一般修复无法成功的时候删除部分出错数据以尝试修复。所以,不到万不得已不要使用 -f。

mysql的check出错_如何利用myisamchk和mysqlcheck快速修复损坏的MySQL数据库相关推荐

  1. check_mysql 脚本_如何使用myisamchk和mysqlcheck工具快速修复损坏的MySQL数据库文件

    由于服务器的数据库硬盘空间满了,由于大量写入数据失败导致了出现"Duplicate entry '' for key 'username'"的错误. 如果,出现这样的mysql数据 ...

  2. mysql phpwind_PhpWind教程:快速修复损坏的MySQL数据库

    PHPWind是个跨平台的开源软件,适用于unix.linux.FreeBSD及微软 windows 2000/2003/2008 等各种服务器环境,产品针对上述操作系统做了大量实例和检验,结果显示P ...

  3. 修复表mysql代码_怎么修复损坏的MySQL数据表

    如何修复损坏的mysql数据表 于断电或非正常关机而导致MySQL数据库出现错误是非常常见的问题.有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另 ...

  4. mysql删除check约束_高级SQL特性——约束与索引

    一.约束 1.约束的作用 对表中数据进行进一步限制,保证表中数据的完整性.一致性和正确性. 2.约束的分类 1)主键约束 主键能够唯一地标识表中的一行,比如学生表中的学生id. 它的主要作用就是能够将 ...

  5. 微信小程序本地存储存储_如何利用本地存储构建快速的应用程序

    微信小程序本地存储存储 by Nikita Kozlov 由Nikita Kozlov 如何利用本地存储构建快速的应用程序 (How to leverage Local Storage to buil ...

  6. 阿里巴巴mysql集群方案_云原生下,如何实现高可用的MySQL?

    简介: MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高 ...

  7. mysql云化方案_云原生下,如何实现高可用的MySQL?

    简介:MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高可 ...

  8. 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...

    一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...

  9. mysql显示表已存在_「Docker系列」 如何在Docker中部署MySQL数据库?

    Docker为部署和测试应用程序和数据库提供了许多优势,这些应用程序和数据库是应用程序不可或缺的一部分,因此很值得学习如何在Docker容器中部署和运行数据库. 本文中,我们会重点关注如下重点: 为M ...

最新文章

  1. oracle入门知识实施,新手必须了解的oracle入门知识
  2. 实现HOOK其他进程的Messagebox(2) DLL注入工具
  3. Android(java)学习笔记10:同步中的死锁问题以及线程通信问题
  4. Codeforces Round #740 (Div. 2, based on VK Cup 2021 - Final (Engine))
  5. c++各类型有效范围
  6. java B2B2C springmvc mybatis电子商城系统(四)Ribbon
  7. rolling方式修改oplog
  8. three20 如何将three20中的demo添加到自己的应用程序中。
  9. greenshot滚屏截图_Greenshot是一款免费的轻量级屏幕截图实用程序,具有许多有用的功能...
  10. fp算法例题_大部分人都理解错了的FPgrowth算法
  11. 盘点五款好用的项目管理软件
  12. SI24R1:国产低功耗2.4GHz收发遥控工控答题卡方案芯片替代NRF24L01+
  13. 云计算机基础架构,云计算基础架构的解决方案
  14. 计算机用户名显示TEMP,win10只要打开ie桌面出现temp文件夹如何解决
  15. js随机选学员。从以下学员名单中随机选出4个学员。
  16. 魔方世界连服务器未响应,为什么魔方世界显示无法连接服务器 | 手游网游页游攻略大全...
  17. Vue + 高德地图 + 三维模型
  18. java时间转时间戳_java时间与时间戳互转
  19. What Is New About NewSQL(NewSQL的独到之处)?
  20. 《联邦学习》——个人笔记(四)

热门文章

  1. 案例三:淘宝用户行为分析
  2. 阿里云云服务器服务协议(通用与专用服务条款)
  3. 批量将多个文件夹整理合并到一个文件夹中
  4. 双色球,抽奖是否中奖
  5. 诛仙3 私服架设 仿官网
  6. ubuntu18 编译maplab opencv3_catkin 时出现Flow control statements are not properly nested.
  7. Devops 开发运维基础篇之Jenkins部署与使用
  8. [翻译]为EXPRESSION WEB 4添翼—如何支持HTML5设计开发!
  9. 高德地图--SDK集成--定位功能 地图定位搜索
  10. 蜗牛睡眠软件测试准吗,蜗牛睡眠怎么判断深睡 知道深睡方法