视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL访问某数据crash
2020-11-09 11:38:14 责编:小采
文档

症状: mysqldump 导出数据 或者访问某张表的或者某条数据的时候 mysql 直接 挂 了. 日志如下: InnoDB: Database page corruption

症状: mysqldump 导出数据 或者访问某张表的或者某条数据的时候 mysql 直接 挂 了.
日志如下:
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 200.
InnoDB: You may have to recover from a backup.
120217 15:45:53 InnoDB: Page dump in ascii and hex (16384 bytes):
len 16384; hex a922822af0c7bcef6d93dadcf4f63e8331d51e7a490667defbefxxxx..................
InnoDB: End of page dump

f 6 PE a r zx3120217 15:45:53 InnoDB: Page checksum 3458627726, prior-to-4.0.14-form checksum 796906866
InnoDB: stored checksum 2837611050, prior-to-4.0.14-form stored checksum 24103017
InnoDB: Page lsn 836050554 1225156574, low 4 bytes of lsn at page end 2266014174
InnoDB: Page number (if stored to page already) 4039621871,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 4222022822
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 200.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
解决: 具体原因不明 参考文档:

首先D:\cn.tsoft.system\mysql5.1.37\bin>mysqlcheck -uroot -pxxxx -P3306 --all-database 定位哪张表出了问题
执行结果如下:
tech_soft_drp_361new.pos_tradebill_cashredeem_item OK
mysqlcheck: Got error: 2013: Lost connection to MySQL server during query when e
xecuting 'CHECK TABLE ... '

由tech_soft_drp_361new.pos_tradebill_cashredeem_item 知道下一张表是 pos_tradebill_item

将my.ini 里边的#innodb_force_recovery=1 #号去掉 重启mysql服务

然后将pos_tradebill_item 数据导出到文件(导出的时候注意导出数据的条数是否正确!)(记录select count(*) from pos_tradebill_item 与导出的条数对比)

找到pos_tradebill_item的建表语句.

删除pos_tradebill_item表

重建pos_tradebill_item表.

导入pos_tradebill_item数据(导入数据的时候将innodb_force_recovery=1重新加上#号. innodb_force_recovery=1模式不支持写)

下载本文
显示全文
专题