mysql 修复模式_Mysql表修复

mysqlcheck

mysqlcheck客户端可以检查和修复MyISAM表。它还可以优化和分析表。mysqlcheck的功能类似myisamchk,但其工作不同。

主要差别是当mysqld服务器在运行时必须使用mysqlcheck,而myisamchk应用于服务器没有运行时。使用mysqlcheck的好处是不需要停止服务器来检查或修复表。

mysqlcheck为用户提供了一种方便的使用SQL语句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它确定在要执行的操作中使用使用哪个语句,然后将语句发送到要执行的服务器上。

示例

mysqlcheck -B 指定数据库 -r -S /data/mysql2/mysql2.sock -u root -p'test' >> /var/log/mysqlcheck.log

常用选项

--optimize,-o 优化表

-h 主机地

-P 端口号

-F 只检查没有正确关闭的表

-r 执行可以修复大部分问题的修复,只是唯一值不唯一时不能修复。

-a 分析表

-c 检查表,默认选项

-m 中等的检查

-e 完全检查,很慢

--database,-B 指定库 如果没指定,表示全部库

--all--database,-A 所有库

--fast,-F 只检查没有正确关闭的表。

--quick,-q 如果你正使用该选项在检查表,它防止扫描行以检查错误链接的检查。这是最快的检查方法。 如果你正使用该选项在修复表,它尝试只修复索引树。这是最快的修复方法。

--silent,-s 沉默模式。只打印错误消息

--tables 覆盖---database或-B选项。选项后面的所有参量被视为表名。

--socket=/-S 指定套接字

myisamchk

myisamchk,只适用于myisam引擎,使用时需要关闭数据库

myisamchk表损坏原因

服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld 进程在写表时被杀掉。因为此时mysql可能正在刷新索引。

磁盘损坏。

服务器死机。

mysql 本身的bug 。

MySQL中MyISAM表损坏的症状

查询数据时报出错误:Incorrect key file for table: '...'. Try to repair it

查询不能在表中找到行或返回不完全的数据。

Error: Table '...' is marked as crashed and should be repaired 。

打开表失败: Can't open file: '×××.MYI' (errno: 145) 。

常见选项

-q 快速修复,一般和-r一起使用,快速修复

-r 修复模式

-o 能修复-r不能修复的问题。一般会有提示使用-o

-i 打印被检测表的信息

-m 中等的检查

-e 最彻底的检查

-a 分析表

-s 安静的

-B 将.MYD文件备份为file_name-time.BAK

--sort-index, -S 以从高到低的顺序排序索引树块。这将优化搜寻并且将使按键值的表扫描更快。

-f 强制修复,一般不使用,可能会有数据丢失

myisamchk默认只用3M的内存来修复,如果要修复大表的话,显然速度会巨慢,我们可以通过为myisamchk设置更多的内存,来使其运行的更快,

myisamchk --sort_buffer_size=16M --key_buffer_size=16M --read_buffer_size=1M --write_buffer_size=1M

一般sort_buffer_size的大小16m就足够用了。

myisamchk默认使用选项“--tmpdir”作为临时文件的,如果tmpdir指定内存的话,恢复的表比较大,很容易报内存的错误,所以我们可以用tmpdir指定一个比较大的文件系统

myisamchk --sort_buffer_size=16m --key_buffer_size=16m --read_buffer_size=2m --write_buffer_size=1m --tmpdir=/tmp

执行myisam表的恢复只要是修复表的三个文件,最常发生问题的文件是数据文件和索引文件

tbl_name.frm:定义(格式)文件

tbl_name.MYD:数据文件

tbl_name.MYI:索引文件

示例

首先进入到对应的数据库下:cd /data/mysql/game | 也可以直接指定表的路径,从而不用进入目录

检查表

#快速的检查

myisamchk -im /usr/local/mysql/data/testx/t2

#只检查没有正常关闭的表

myisamchk -iFm /usr/local/mysql/data/testx/t2

#仅显示表的最重要的信息

myisamchk -eim /usr/local/mysql/data/testx/t2

修复表

#常用的修复命令

myisamchk -rq tbl_name #快速修复表,只修复索引

myisamchk -Br tbl_name #备份并修复表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Office Word界面和页面字体模糊不清的解决方案

最近在打开Word编辑文档时,发现了一个非常让人懊恼的现象,整个Word的界面和页面中的字体变得模糊不清,光标所到之处会短暂地局部变清晰,完全没法正常使用。 觉得很奇怪,以前一直能正常使用,为什么现在就出…

PS自动生成不同尺寸图标

2019独角兽企业重金招聘Python工程师标准>>> ####一、简介 通过在ps执行脚本将当前编辑的素材生成各种不同尺寸的png图标。下面例子在cs6下测试通过。 参考:http://coolketang.com/psscript/menu8lesson12.php ####二、脚本jsx //调用[File]的[openDialo…

JQuery学习笔记12——GET请求和POST请求

1.GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然,在Ajax请求中,这种区别对用户是不可见的。2.GET方式对传输的数据大小限制(通常不能大于2KB),而使用POST方…

如何在Word中输入带圈数字1-10的黑底白字和白底黑字的数字字符?

当需要在文档中输入带圈的数字字符时,你知道如何输入吗? 通常的输入法软键盘中会提供带圈的数字字符,但是都是白底黑字的。如果想输出黑底白字的带圈数字字符,该如何输入呢? 答案很简单: 在Word 2013中&…

mysql编译innodb_源码编译MySQL5.1生成InnoDB存储引擎_MySQL

bitsCN.com源码编译MySQL 5.1生成InnoDB存储引擎这里就仅列出主要步骤:[plain] ./configure --prefix/home/mysql51/mysql/ --enable-assembler --enable-local-infile --enable-thread-safe-client --with-big-tables --with-charsetutf8 --with-extra-charsetsgbk…

在64位系统上注册并使用32位的COM组件

1、将COM组件的DLL复制到C:\Windows\sysWOW64目录中。 2、以管理员身份运行CMD并转到C:\Windows\sysWOW64,使用“regsvr32 xxx.dll”注册COM组件。 3、在IIS7中创建好站点并使用单独的程序池,在程序池中选择“高级设置”,在常规选项中找到“启…

Oracle存储过程 使用游标、数组的配合查询

查询输入的门牌号码是否在标准门牌库中存在。存在则返回相应的号码。 1 public string GetValidate(){2 3 OracleConnection conn ConnectOra();4 string retRepMphm;5 try6 {7 conn.open();8 OracleComandType cmdconn.CreateCommand();9 cmd.Com…

Windows环境下Code::Blocks中成功配置MySQL Connector/C连接MySQL数据库

下面我将介绍当需要用C语言开发能访问MySQL数据库的程序时成功配置的关键事项。 操作系统:Windows 7 x64 编程环境:Code::Blocks 10.05(32bit) 配置方式说明:用C语言开发访问MySQL数据库至少有3种配置方式。 方式1:使用MySQL C…

数据库已死

板桥里人 http://www.jdon.com 2008/09/03 现代软件和以往传统软件主要区别在于:现代软件基于internet互联网技术,运行于开放的网络环境,不象传统软件只是运行在封闭的局域网,运行环境的区别就决定了软件操作用户的多少&#xff0…

VA_X_Setup1849.zip

http://download.csdn.net/download/bihaichentian/3349726 转载于:https://www.cnblogs.com/xxvv/archive/2012/09/18/3648590.html

离散卷积过程举例图示详解

卷积结果的通俗解释: f(x)是待处理的信号。通常地,该函数数据个数比较多。 g(x)是对信号前后相关性的描述的函数。通常地,该函数非零数据个数比较少。它通常具有在(-∞,∞)内可积且快速收敛的特性。 对于本例中的函数g(x),卷积…

写给在Java和.net中徘徊的新手

在很多网站上,网友都会问一个相同的问题,到底是学Java还是.net,个有个的见解。 自从.Net问世以来,程序员都很关心的一个问题是「该学Java或.NET」。我也在挣扎,该「该继续Java的研究,或者该开始准备培养.NE…

spring BeanFactory概述

BeanFactory是Spring提供的两种容器类型之一,它是基础的IoC容器,并提供完整的IoC服务支持。如果没有指定,默认采用延迟初始化策略。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作…

c语言数据结构将链串里所有值为x的字符删除_redis数据结构与对象到底长什么样?...

写在前面前方高能!前方高能!前方高能!文章较长,可能需要花费您两个小时的时间,请做好心理准备,但是一旦你准备看下去,我相信您一定会有收获,不枉此行,let’s go!!!一、简…

java中判断字段真实长度(中文2个字符,英文1个字符)的方法

public class Char_cn { public static void main(String[] args) { // TODO Auto-generated method stub String haha "我叫兜兜abcd"; int true_num String_length(haha); System.out.println("true" true_num); int false_num haha.length();…

多种电脑不识别移动硬盘的解决方法,电脑识别不了移动硬盘

一、不识别移动硬盘的问题 1、更换usb接口:有些usb接口是不能同时使用的(启用前置,后置的接口就有1--2个被屏蔽的),甚至是没有连接线。并检查USB接线是否正确。 2、将移动硬盘的2个usb接口都接上,因2.5寸40…

Java程序利用POJ读写Excel的.xls或.xlsx文件所需的3个jar包

Java程序利用POJ读写Excel文件时,不能只用poi的jar包,因为它还依赖于xmlbeans的jar包,xmlbeans又以来与common-collections的jar包,因此,正常使用POI,其实需要3个jar包。 当然可以通过配置Maven解决jar包之…

mysql主从技术_MySQL主从架构的实现

目录一主一从1.1 环境准备:1.2 准备步骤:1.3 实现步骤:1.3.1 配置master主服务器1.3.2 创建复制帐号1.3.3 查看主服务器状态1.3.4 配置slave从服务器1.3.5 启动从服务器复制线程1.3.6 查看从服务器状态1.3.7 测试1.4 扩展——实现一主多从1.4.1 需求分析…

Netbeans8下 Weblogic EJB案例

1:接口 Remote public interface XgmZzsNssb {} 2:实现 Stateless(mappedName"XgmZzsNssbImpl") Remote(XgmZzsNssb.class) public class XgmZzsNssbImpl implements XgmZzsNssb{} 3:客户端调用 public static void main(String[] …

Java编程中值得注意的对象引用现象

Java中的类根据赋值对象与被赋值对象是否共享对象的实际数据内存空间,分为值型类和引用型类。 Java中将一个对象赋值给另一个对象时,如果这个对象是值对象(所谓的值对象就是由值型类生成的对象),则这两个对象的实际数据…