文档章节

table marked as crashed and should be repaired

kenyon_君羊
 kenyon_君羊
发布于 2012/05/02 11:04
字数 1073
阅读 1883
收藏 1
今天一台Windows的系统日志报了一长串的错误日志信息,每隔几秒就报一次。看了一下,都是一样的:
Failed to write to mysql.general_log: Table 'general_log' is marked as crashed and should be repaired
For more information, see Help and Support Center at http://www.mysql.com.
进入数据库查看的时候就一直hang在那里,这个表是记录系统性能用的,之前跑了一个脚本专门往里面塞系统性能日志信息,表面看来表已经损坏,需要修复一下。修复之前原想备份一下,但是备份不成功,分析了下这个表,是个myisam引擎数据,另外存放的统计数据丢失也不要紧,故直接修复

以下是使用MYSQL的自带工具myisamchk的解决办法:
a.myisamchk -c -r filename,失败


b.使用safe模式,失败


c.safe模式追加force参数,成功


这张表的数据量比较大,有1800多万,现在已经正常。 附myisamchk的使用方法:
F:\mysql\bin>myisamchk --help
myisamchk  Ver 2.7 for Win64 at x86
By Monty, for your professional use
This software comes with NO WARRANTY: see the PUBLIC for details.

Description, check and repair of MyISAM tables.
Used without options all tables on the command will be checked for errors
Usage: myisamchk [OPTIONS] tables[.MYI]

Global options:
  -H, --HELP          Display this help and exit.
  -?, --help          Display this help and exit.
  -t, --tmpdir=path   Path for temporary files. Multiple paths can be
                      specified, separated by semicolon (;), they will be used
                      in a round-robin fashion.
  -s, --silent        Only print errors.  One can use two -s to make
                      myisamchk very silent.
  -v, --verbose       Print more information. This can be used with
                      --description and --check. Use many -v for more verbosity.

  -V, --version       Print version and exit.
  -w, --wait          Wait if table is locked.

Check options (check is the default action for myisamchk):
  -c, --check         Check table for errors.
  -e, --extend-check  Check the table VERY throughly.  Only use this in
                      extreme cases as myisamchk should normally be able to
                      find out if the table is ok even without this switch.
  -F, --fast          Check only tables that haven't been closed properly.
  -C, --check-only-changed
                      Check only tables that have changed since last check.
  -f, --force         Restart with '-r' if there are any errors in the table.
                      States will be updated as with '--update-state'.
  -i, --information   Print statistics information about table that is checked.
  -m, --medium-check  Faster than extend-check, but only finds 99.99% of
                      all errors.  Should be good enough for most cases.
  -U  --update-state  Mark tables as crashed if you find any errors.
  -T, --read-only     Don't mark table as checked.

Repair options (When using '-r' or '-o'):
  -B, --backup        Make a backup of the .MYD file as 'filename-time.BAK'.
  --correct-checksum  Correct checksum information for table.
  -D, --data-file-length=#  Max length of data file (when recreating data
                      file when it's full).
  -e, --extend-check  Try to recover every possible row from the data file
                      Normally this will also find a lot of garbage rows;
                      Don't use this option if you are not totally desperate.
  -f, --force         Overwrite old temporary files.
  -k, --keys-used=#   Tell MyISAM to update only some specific keys. # is a
                      bit mask of which keys to use. This can be used to
                      get faster inserts.
  --max-record-length=#
                      Skip rows bigger than this if myisamchk can't allocate
                      memory to hold it.
  -r, --recover       Can fix almost anything except unique keys that aren't
                      unique.
  -n, --sort-recover  Forces recovering with sorting even if the temporary
                      file would be very big.
  -p, --parallel-recover
                      Uses the same technique as '-r' and '-n', but creates
                      all the keys in parallel, in different threads.
  -o, --safe-recover  Uses old recovery method; Slower than '-r' but can
                      handle a couple of cases where '-r' reports that it
                      can't fix the data file.
  --character-sets-dir=...
                      Directory where character sets are.
  --set-collation=name
                      Change the collation used by the index.
  -q, --quick         Faster repair by not modifying the data file.
                      One can give a second '-q' to force myisamchk to
                      modify the original datafile in case of duplicate keys.
                      NOTE: Tables where the data file is currupted can't be
                      fixed with this option.
  -u, --unpack        Unpack file packed with myisampack.

Other actions:
  -a, --analyze       Analyze distribution of keys. Will make some joins in
                      MySQL faster.  You can check the calculated distribution
                      by using '--description --verbose table_name'.
  --stats_method=name Specifies how index statistics collection code should
                      treat NULLs. Possible values of name are "nulls_unequal"
                      (default for 4.1/5.0), "nulls_equal" (emulate 4.0), and
                      "nulls_ignored".
  -d, --description   Prints some information about table.
  -A, --set-auto-increment[=value]
                      Force auto_increment to start at this or higher value
                      If no value is given, then sets the next auto_increment
                      value to the highest used value for the auto key + 1.
  -S, --sort-index    Sort index blocks.  This speeds up 'read-next' in
                      applications.
  -R, --sort-records=#
                      Sort records according to an index.  This makes your
                      data much more localized and may speed up things
                      (It may be VERY slow to do a sort the first time!).
  -b,  --block-search=#
                       Find a record, a block at given offset belongs to.

Default options are read from the following files in the given order:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf F:\mysql\my.ini F:\mysql
\my.cnf
The following groups are read: myisamchk
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
character-sets-dir                (No default value)
data-file-length                  0
keys-used                         18446744073709551615
max-record-length                 9223372036854775807
set-auto-increment                0
set-collation                     (No default value)
sort-records                      0
tmpdir                            (No default value)
key-buffer-size                   520192
key-cache-block-size              1024
myisam-block-size                 1024
read-buffer-size                  262136
write-buffer-size                 262136
sort-buffer-size                  2097144
sort-key-blocks                   16
decode-bits                       9
ft-min-word-len                   4
ft-max-word-len                   84
ft-stopword-file                  (No default value)
stats-method                      nulls_unequal

© 著作权归作者所有

共有 人打赏支持
kenyon_君羊
粉丝 499
博文 170
码字总数 121714
作品 0
杭州
其他
私信 提问
mysql table 异常

error:--->>> Table '.\training\training_subject' is marked as crashed and should be repaired 问:好好的,表怎么就崩了呢?...

zerohh
2013/03/15
80
3
mysql错误Table ‘./mysql/proc’ is marked as crashed and should be repaired

mysql错误Table ‘./mysql/proc’ is marked as crashed and should be repaired 在mysql管理软件中执行查询语句: repair table mysql.proc; 会返回: mysql.proc repair status OK 就表明修......

V字仇杀
2018/04/19
0
0
解决“is marked as crashed and should be repaired”

由于服务器存储满了导致MySQL启动不起来了,清理了存储空间后再启动MySQL报了个“Table XX is marked as crashed and should be repaired”,看意思应该是表损坏了,搜了一下,解决这个用 my...

since1986
2014/06/05
0
0
ERROR 145 (HY000): Table '$table' is marked as ...

今天打开系统报错,排查下去,具体是这个错误: ERROR 145 (HY000): Table './cmxt/cmuserpref' is marked as crashed and should be repaired 解决方法如下:(用此方法修复成功) mysql> r......

苏叶晚晚
2012/12/03
0
0
MYSQL 出现145错误,XXXX表is marked as crashed and should be repaired

最近这段时间老是经常出现mysql里面的某张表出现被标记。。 145 Table './xxxx/whos_online' is marked as crashed and should be repaired in:[delete from whos_online where time_last_c......

新世纪IT民工
2013/12/03
901
5

没有更多内容

加载失败,请刷新页面

加载更多

移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
今天
3
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
3
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
3
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
3
0
小程序设置垂直居中,水平居中

如果子容器中的view需要居中的话,那需要在父容器中设置居中 水平居中: display: flex; flex-direction: column; align-items: center; 垂直居中 display: flex;align-items: cen...

淘幻幻
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部