mysql命令修复数据库表开心乐园源码

REPAIR TABLE `table_name` 修复表  (只对oa开心乐园源码搭建q3191355031有效)
OPTIMIZE TABLE `table_name` 优化表

REPAIR TABLE 用于修复被破坏的表。
OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库)。

多数时间并不需要运行OPTIMIZE TABLE,只需在批量删除数据行之后,或定期(每周一次或每月一次)进行一次数据表优化操作即可,只对那些特定的表运行。

一般来说,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少。大多数形式的数据库破坏的的修复相当简单。

下面的方法只对MyISAM格式的表有效。其他类型的损坏需要从备份中恢复。

1,REPAIR TABLE SQL statement (mysql服务必须处于运行状态)。
2,命令mysqlcheck (mysql服务可以处于运行状态)。
3,命令myisamchk (必须停掉mysql服务,或者所操作的表处于不活动状态)。

在修复表的时候,最好先作一下备份(此时一般用mysqldump已经无法备份了,把整个data目录复制出来吧),所以你需要两倍于原始表大小的硬盘空间。请确保在进行修复前你的硬盘空间还没有用完。

1>用”repair table”方式修复

语法:repair table 表名 [选项]
选项如下:
QUICK 用在数据表还没被修改的情况下,速度最快
EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下。利用.frm的定义来重建索引

多数情况下,简单得用”repair table tablename”不加选项就可以搞定问题。但是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,这时索引文件丢失或者其头部遭到了破坏,为了利用相关定义文件来修复,需要用USE_FRM选项。

2>用mysql内建命令mysqlcheck来修复

当mysql服务在运行时,也可以用mysql内建命令mysqlcheck来修复。
语法:mysqlcheck -r 数据库名 表名 -uuser -ppass

mysqlcheck -r sports_results mytable -uuser -ppass
sports_results.mytable OK

利用mysqlcheck可以一次性修复多个表。只要在数据库名后列出相应表名即可(用空格隔开)。或者数据库名后不加表名,将会修复数据库中的所有表,例如:

mysqlcheck -r sports_results mytable events -uuser -ppass
sports_results.mytable OK
sports_results.events OK
 
mysqlcheck -r sports_results -uuser -ppass
sports_results.mytable OK
sports_results.events OK

3>用myisamchk修复

用这种方式时,mysql服务必须停掉,或者所操作的表处于不活动状态(选项skip-external-locking没被使用)。记着一定要在相关.MYI文件的路径下或者自己定义其路径。
语法:myisamchk [选项] [表名]
下面是其选项和描述
–backup, -B 在进行修复前作相关表得备份
–correct-checksum 纠正校验和
–data-file-length=#, -D # 重建表时,指定数据文件得最大长度
–extend-check, -e 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
–force, -f 当遇到文件名相同的.TMD文件时,将其覆盖掉。
keys-used=#, -k # 指定所用的keys可加快处理速度,每个二进制位代表一个key.第一个key为0
–recover, -r 最常用的选项,大多数破坏都可以通过它来修复。如果你的内存足够大,可以增大参数sort_buffer_size的值来加快恢复的速度。但是遇到唯一键由于破坏而不唯一 的表时,这种方式不管用。
–safe-recover -o 最彻底的修复方式,但是比-r方式慢,一般在-r修复失败后才使用。这种方式读出 所有的行,并以行为基础来重建索引。它的硬盘空间需求比-r方式稍微小一点,因 为它没创建分类缓存。你可以增加key_buffer_size的值来加快修复的速度。
–sort-recover, -n mysql用它类分类索引,尽管结果是临时文件会非常大
–character-sets-dir=… 包含字符集设置的目录
–set-character-set=name 为索引定义一个新的字符集
–tmpdir=path, -t 如果你不想用环境变量TMPDIR的值的话,可以自定义临时文件的存放位置
–quick, -q 最快的修复方式,当数据文件没有被修改时用,当存在多键时,第二个-q将会修改 数据文件
–unpack, -u 解开被myisampack打包的文件

myisamchk应用的一个例子:

myisamchk -r mytable
- recovering (with keycache) MyISAM-table ‘mytable.MYI’
Data records: 0

原文地址:https://www.cnblogs.com/ssc168/p/11569671.html

时间: 2024-07-29 12:01:16

mysql命令修复数据库表开心乐园源码的相关文章

mysql命令导出数据库表数据

最常用的: mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql 这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数 C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_drv > e:\date_drv.sql mysql的数据导入

简单记录下mysql计划OA开心乐园源码下载任务创建

有时候我们在OA开心乐园源码下载联系方式:QQ:2747044651 网址http://zhengtuwl.com 程序中需要定时进行一项数据操作,这时我们可以使用线程来满足需求.另外在mysql中有一个功能叫做event,可以定时执行指定数据操作. 二.创建过程如下: CREATE EVENT IF NOT EXISTS sysYipsEventON SCHEDULE EVERY 30 SECONDON COMPLETION PRESERVEDO CALL sys_tips_distribut

MYSQL Study案例之--RedHat EL55源码安装Mysql-5.6

MYSQL  Study案例之--RedHat EL55源码安装Mysql-5.6 系统环境: 操作系统:RedHat EL55 DB Soft:  Mysql 5.6.4-m7 1.系统环境 [[email protected] Packages]# uname -a Linux rh6 2.6.18-194.el5.xen #1 SMP Tue Jan 29 11:47:41 EST 2013 i386 i686 GNU/Linux [[email protected] Packages]#

mysql 命令重命名表RENAME TABLE 句法

mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更名是以原子方式(atomically)执行,这就意味着,当更名正在运行时,其它的任何线程均不能该表.这使得以一个空表替换一个表成为可能. CREATE TABLE new_table (...);RENAME TABLE old_table TO backup_table, new_table TO

CBTC系OA开心乐园源码出售统标准: 1474.1---系统性能及功能需求

CBTC系统标准:OA开心乐园源码出售论坛:haozbbs.com Q1446595067 1474.1---系统性能及功能需求: 系统总体需求: 1). 系统特点: ? 独立于轨道电路的列车精确定位: ? 车地之间双向.连续.大容量的通信: ? 车载(VOBC)和柜旁(ZC.CI)执行关键功能. 2). 系统分类: ? 仅有ATP: ? 既有ATP,也有ATO和ATS. 3). 运营模式: ? CBTC内的正常运行:(CBTC车和非CBTC车): ? CBTC内的故障运行:(降低速度.加大追踪

Mysql怎么优化修复数据库表

最近客户问题说网站因为数据库报错打不开,自己总结了一下些经验,然后看报错信息如下: Mysql数据库作为优秀的开源数据库版本,支持大型数据存储.可是如果使用操作太多,表的频繁操作也可能会出现数据库表出现问题需要优化和修复 修复表——>方法一: 在浏览器打phpmyadmin或者在mysql客户端运行以下命令: 1)直接运行sql语句 REPAIR TABLE `table_name` 修复表 ,具体操作如下图: 2) 在数据库里找到操作也可以修复表,具体操作如下图: 修复表——>方法二: 可以

数据库极速飞艇源码出售之分库分表-垂直

一.数据库瓶颈 不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就可以想象了吧(并发量.吞吐量.崩溃). IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的随机IO,降低查询速度 -> 分库和垂直分表. 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库. CPU瓶颈第一种极速飞艇源码出售Q3266397597[da

MySQL 数据库牛 彩源码下载设计总结

牛彩源码下载联系方式:QQ:2747044651网址请添加链接描述注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节.另外MyISAM数据和索引是分开,而InnoDB的数据存储是按聚簇(cluster)索引有序排列的,主键是默认的聚簇(cluster)索引,因此MyISAM虽然在一般情况下,查询性能比InnoDB高,但InnoDB的以主键为条件的查询性能是非常高的. 规则2:命名规则. 数据库和表名应尽可能和所服务的业务模块名一致服

mysql+ssh整合例子,附源码下载

项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源码下载地址:http://download.csdn.net/detail/adam_zs/7262749 今天花时间把ssh整合了一下,重新再学习一下,希望对大家有所帮助! 我用的是mysql数据库,建表语句比较简单就不贴出来了,建表的时候记的设置id为自动增加哦. 项目文件位置,项目引用jar包 项目配置文件 web.xml <?xml version="1.0&q