首页 > 数据库 >【MYSQL异常处理】记录一次MYSQL数据库断电无法启动异常,错误提示为 ERROR! The server quit without updating pID file (/usr/local/m

【MYSQL异常处理】记录一次MYSQL数据库断电无法启动异常,错误提示为 ERROR! The server quit without updating pID file (/usr/local/m

时间:2023-02-16 15:47:32浏览次数:40  
标签:文件 启动 data MYSQL pid mysql 异常

某xx项目,系统一直用着好好的,虽然无客户真实数据,但包含许多现场定制配置数据,结果客户突然把服务器给断电关机了,服务器环境大致如下

1 服务器环境描述:
2 centos7三台
3 其中,一台centos部署mysql,其他两台部署nacos,基础服务,及其他业务微服务应用

因为那会快下班了,客户都走了,想着第二天让客户给开下服务器,我们重启下相关服务应该没啥,事实证明我真是大意了

到了第二天,和同事一块开始恢复,然后傻眼了,半小时过去,MYSQL还没启起来,启动一直报错如下

 去mysql/data目录下查看,业务库的数据库文件都在,但看不出有木有损坏,也没有找到后缀pid的文件

pid文件的作用就是当mysql服务启动好之后,记录它当前的进程id,打开正常运行的mysql环境,pid文件中其实就只有一个码

继续使用命令查看MYSQL状态,提示锁文件

 尝试删除锁定的这个文件,启动依旧报图一的错误,去查了mysql的日志文件,看到其中包含[ERROR] [MY-013183] [InnoDB] Assertion failure:..之类的描述

于是去万能的网上找资料,但看到多数的说法是出现这个错就是表示数据库崩溃,会有数据丢失,根据不同的情况,有的能恢复,有的恢复不了

罗列几种网上的处理
1)手动创建pid文件再启动;
2)修改配置配置#innodb_force_recovery=6,强制启动mysql ,逻辑导出导入
3)如果data目录中的业务库文件还在,尝试迁移的方式恢复
4)找专业的数据恢复公司人员(这个就不考虑了)

然后一一尝试,最终都不行,原因为

1)使用touch命令确实可以手动创建,然但启动服务时,pid文件就会被自动删除
2)修改配置后启动,还是启动不起来,错误依旧
3)迁移这种,前提时两套一模一样版本的mysql环境,且都是正常的(这点不满足),第一台服务器data目录中的文件全部复制到第二台服务器data目录,第二台启动时可以直接识别到所有的库

真的是好气馁,很不幸,折腾两天,一无所获

肯定有人说,谁让你不做好备份,数据没了活该

确实是没做备份,确实是活该,但还是想说,一部分原因是服务器资源不是很足,本身就处于那种能用但很卡的情况

其实老早就装了SQLBackupAndFTPSetup,也配置了定时备份任务,但只要一启动备份任务,服务器会直接卡住,也是没招

最后的结果,只能联系公司开发人员,重新给提供一份库

数据无价,请大家引以为戒,做好日常数据备份工作!

 

标签:文件,启动,data,MYSQL,pid,mysql,异常
From: https://www.cnblogs.com/lingyu0702/p/17125482.html

相关文章

  • mysql 占用CPU资源过大原因分析
    输入showprocesslist;命令注意state字段,Sendingdate;Waitingfortables;或各种lock(锁)大概率因为这些sql造成Checkingtable正在检查数据表(这是自动的)。Closing......
  • 《用 libcurl 实现 HTTP 下载文件,其中设置了超时时间,以便在网络异常时能够快速中止下
    CURLOPT_TIMEOUT选项设置了超时时间为10秒,如果在这个时间内没有下载完成,则会返回一个超时错误,可以在回调函数中进行错误处理。如果网络异常或其他错误,也会在curl_eas......
  • 如何从MySQL中的当前日期时间减去30天?
    要从当前日期时间中减去30天,首先我们需要获取有关当前日期时间的信息,然后使用now()MySQL中的方法。在now()给出当前日期时间。用于此的方法是MySQL的DATE_SUB()。这是从当......
  • mysql重置自增id
    1、删除表中数据并且重置id这种方法好处是运行速度超快‘truncatetable表名; 2、删除表中数据并且重置id这种方法好处是可以从任何值开始,缺点是如果数据量大的话d......
  • docker离线安装mysql镜像
    docker离线安装mysql镜像1、拷贝mysql离线包安装包地址:链接:https://pan.baidu.com/s/13JfkqlkIMglo3tHImOUm_w密码:622t1.1、将mysql-57.gz安装文件拷贝......
  • IP服务正常,域名服务异常,报400 badrequest
    IP的情况下,访问接口都正常,使用域名访问,报错400badrequest经确认,ssl配置无问题,证书文件本身无问题最后查出来原因,是域名格式的问题,原域名中包含_,需要修改为-排查过程:1.......
  • linux系统安装jdk1.8、mysql5.7、redis(压缩包版本教程)
    linux系统安装jdk1.8、mysql5.7、redis(压缩包版本教程)在内网环境中的linux系统上安装环境,十分的麻烦(没有网络)一、安装jdk1.81.在use/local下创建相关文件夹:1.mkdirja......
  • openeuler 安装mysql5.7数据库(安装包tar.gz)
    1、官网下载压缩安装包。进入到mysql官网下载自己对应版本的mysql,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,选择Linux的通用版本,64位,并......
  • Flask Mysql 连接提交出错
    RuntimeError:Thesessionisunavailablebecausenosecretkeywasset. Setthesecret_keyontheapplicationtosomethinguniqueandsecret.出错如上所示原......
  • 华为欧拉openEuler22.03安装mysql时遇到的坑
    mysql:errorwhileloadingsharedlibraries:libncurses.so.5:cannotopensharedobjectfile:Nosuchfileordirectory这里是说在系统的/usr/lib64 这个目录......