网站首页 > 博客文章 正文
背景
甲方公司反馈说网站某些页面提示500错误,数据人员给我打电话说这个问题时是大晚上,看来问题是需要紧急解决的,我当时第一反应是定时任务等业务方面的延迟问题,电话中我跟他说了这种情况,当时我并没有向他说技术方面的问题,因为在我印象中,该网站已经运行了数年没有问题,我告诉他我需要检查检查,稍后给他反馈。
奇葩的问题
这里简单说下我查找问题的顺序(每个人的习惯不一样,适应自己的是最好的)。
我登上easyconnect进入甲方公司的内部服务器,首先打开服务器日志,动态监听,刷新网页,查看报错日志,大部分日志错误是执行sql语句报错,这种情况我第一反应是数据错误,为了验证我的猜想,我打算进入数据库查看表数据,我像往常一样输入密码进入数据库,注意,真相就要浮出水面了,我使用use切换到报错的数据库,我熟练的敲下了回车键,映入我眼帘的并不是熟悉的ok,而是connect to server error,我很吃惊,我尝试用navicat远程连接数据库,能连上!我镇定的用紧张的手指点击之前Use的数据库,能打开!吃惊!我黑人问号,我思索片刻,按下心中的猜想,决定先去看看mysql错误日志,不管两个客户端如何表现,报错问题可能藏在mysql的错误日志里。
因为是接手的项目,我先找到my.cnf文件,从中找到了我需要的错误日志的路径,打开日志,从中找到了如下error:InnoDB: Error: trying to access page number which is outside,打开chatgpt,输入错误,从他给出的回答,有一项是表损坏。
在解决问题前,我需要备份数据库,使用mysqldump报错,用navicat转储报错,错误都是执行命令丢失与服务器的链接,看来无法备份了,原因可能确实是某些表损坏了,因为navicat能连上数据库,我尝试着打开表,部分能打开,部分不能打开。问题是表损坏的原因更加确定了。
解决过程
既然是表损坏,我尝试删掉重新建表,他给了我惊喜的结果,查询此表正常打开,插入测试数据,页面能正常显示,到这里,我确认表存坏了,但问题来了,我不会修复表,网上查询各种解决办法,加配置innodb_force_recovery,设置了1-6,不管用,其他方式也尝试了,不管用,脑袋大了,因为甲方催促,和领导商量决定,重装mysql数据库,因为无法备份,该项目之前也没有备份数据,决定使用项目刚开发完本地用的测试数据,之后新增缺少的数据。
重装mysql和导入数据这里就略过了,这里接着说一下接下来遇到的一个问题。
测试数据和线上数据相差悬殊,数据人员不干!让我导没有损坏的表,本着我这里容易做得原则,由我干,悲催的来了,线上数据库宕了,尝试各种方式也无法重启,
只能走下一步了:使用ibd文件恢复数据。
使用ibd文件恢复数据
1:在本地安装了和线上相同版本的msql,创建同名数据库
2: 创建需要恢复的表会生成idb和frm文件
3: 删除表空间(ibd文件),使用如下命令:alter table 表名称 discard tablespace;
4:将需要恢复的ibd文件复制到新创建的数据库的DATA文件夹下,并修改文件权限
我的是放在如下位置
chown mysql:mysql 表名称.ibd
5:重新导入表空间alter table 表名称 import tablespace;
接下来就是大量表的恢复了,转储导入,超多,累!如果哪位大佬有更好的方式,留言,拜谢!
猜你喜欢
- 2024-09-23 MySQL最重要的日志-binlog详解(mysqlbinlog日志内容)
- 2024-09-23 mysql 错误:packets out of order.
- 2024-09-23 MySQL 性能优化:8 种常见 SQL 错误用法
- 2024-09-23 常见的 MySQL 异常及处理方法(mysql故障处理)
- 2024-09-23 详解蓝鲸部署常见报错及解决方案汇总
- 2024-09-23 MySQL数据库“十宗罪”【十大经典错误案例】
- 2024-09-23 MySQL 面试选择题15道(答案解释)(mysql面试题及答案整理)
- 2024-09-23 mysql1366错误:字符集冲突导致插入数据异常,解决方案
- 2024-09-23 mysql使用过程的错误记录(五)(mysql常见错误)
- 2024-09-23 mysql 使用过程的错误记录(一)(mysql语句错误)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)