若何实现MySQL数据库表中的弊端检测?[Linux安全]
本文“若何实现MySQL数据库表中的弊端检测?[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们大家在利用MySQL数据库的历程中,会碰到很多种不测而招致数据库表的破坏,并且这些数据都是新的数据,我们普通在备份数据找,但是普通的情形是找不到的.本章将报告若何检测MySQL数据库表的弊端.
表的弊端检测和改正的普通历程以下:
查抄出错的表.假如该MySQL数据库表查抄通过,则完成任务,不然必须修复出错的数据库表.
在开始修复之前对表文件举行拷贝,以保证数据的安全.
开始修复数据库表.
假如修复失利,从数据库的备份或更新日记中恢复数据.
在利用myisamchk或isamchk查抄或修复表之前,应当首先注意:
成立数据库备份和利用更新日记,以防修复失利,丧失数据.
细心阅读本章内容今后再举行操作,特别是不该该在阅读“避免与MySQL服务器交互作用”之前举行操作.因为,在你没有充足的知识之前冒然操作,大概会惹起严重的后果.
假如你在Unix平台上对表举行保护时,应当首先注册到专用的帐户 mysql,以避免对表读写拜候产生全部权的问题,以及破坏数据库目录的全部权限.
数据库表的保护工具
MySQL的myisanchk和isamchk实用程序很近似,基本上它们具有一样的利用办法.它们之间的主要辨别时所利用的表的范例.为了查抄/修复MyISAM表(.MYI和.MYD),你应当利用myisamchk实用程序.为了查抄/修复ISAM表(.ISM和.ISD),你应当利用isamchk实用程序.
为了利用任一个利用程序,应指明你要查抄或修复的MySQL数据库表,myisamchk和isamchk的利用办法为:
- shell>myisamchk options tbl_name shell>isamchk options tbl_name
假如你乐意,你可以在号令行命名几个表.
你也能指定一个名字作为一个索引文件(用“ .MYI”或“.ISM”后缀),它答应你通过利用情势“*.MYI”或“.ISM”指定在一个目录全部的表.比方,假如你在一个数据库目录,你可以这样在目录下查抄全部的表:
- shell> myisamchk *.MYI shell>isamchk *.ISM
假如你不在数据库目录下,你可指定目录的途径:
- shell> myisamchk options /path/to/database_dir/*.MYI shell> isamchk options /path/to/database_dir/*.ISM
你乃至可以通过为MySQL数据目录的途径指定一个通配符来作用于全部的数据库中的全部MySQL数据库表:
- shell> myisamchk options /path/to/datadir/*/*.MYIshell> isamchk options /path/to/database_dir/*/*.ISM
注意 不管是myisamchk还是isamchk都不对表所在的位置做任何判断,因此,应当大概在包含表文件的目录运路程序,大概指定表的途径名.这答应你将表文件拷贝到另一个目录中并用该拷贝举行操作.
查抄数据库表
myisamchk和isamchk供应了表的查抄办法,这些办法在完好查抄表的程度方面有差别.
尺度的办法查抄表
普通用尺度的办法就充足了.对MySQL数据库表利用尺度的办法举行查抄,不利用任何选项直接调用便可,或用-s或--silent选项的任何一个:
- myisamchk tbl_name isamchk tbl_name
这能找出全部错误的99.99%.它不能找出的是仅仅触及数据文件的破坏(这很不常见).
完好完好的数据查抄
为了履行扩大查抄,利用--extend-check或-e选项,这个选项查抄数据:
- myisamchk -e tbl_name isamchk -e tbl_name
它做一个完好完好的数据查抄(-e意思是“扩大查抄”).它对每一行做每个键的读查抄以证实他们确切指向精确的行.这在一个有很多键的大表上大概花很长时间.myisamchk普通将在它发现第一个错误今后终止.
假如你想要得到更多的信息,你能增添--verbose(-v)选项.这使得myisamchk或isamchk持续一向到最多20个错误.在普通利用中,一个简单的尺度查抄(没有除表名以外的参数)就充足了.
中等程度的查抄
指定选项--medium-check或-m
- myisamchk -m tbl_name
中等程度的查抄不如扩大查抄完好,但速度快一些.其意义不大,较少利用.
假如关于--extend-check查抄不报告错误,则可以必定MySQL数据库表是无缺的.假如你仍旧感受表有问题,那缘由必定在别的地方.应重新查抄人和仿佛有问题的查询以考证查询是精确书写的.假如你认为问题大概是MySQL服务器的缘由,应当考虑整理一份弊端报告大概进级到新的版本上.
大概有效的查抄选项:
1.-i或—information 打印统计信息,比方:
- myisamchk -e -i tbl_name
象前面的号令一样,但是-i选项奉告myisamchk还打印出一些统计信息.
- 2.-C, --check-only-changed
只查抄上一次查抄后被改正的MySQL数据库表.
以上是“若何实现MySQL数据库表中的弊端检测?[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |