一、问题

二、常见解决方案

网上的解决方法大致为 ①空间不足(df -h 查看) ②权限不足(/var/lib文件夹)chown -R mysql:mysql /vdb1/lib/ ③修改my.cnf ,重新配置socket路径 ④使用mysql -h127.0.0.1 -uroot -p连接 ⑤干掉僵尸进程 ps -ef | grep mysql

三、本次解决方案

1、以上方法对于本人当前环境均没有用,使用④方法,报错为

ERROR 2003 (HY000): Can't connect to MySQL server on "host" (111)

2、经大神指导,在mariadb日志(/var/log/mariadb/mariadb.log)中看到 mysqld got signal 6

Version: ‘5.5.64-MariaDB’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MariaDB Server

200617 22:54:24 InnoDB: Assertion failure in thread 140689172858624 in file fut0lst.ic line 83

InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA

InnoDB: We intentionally generate a memory trap.

InnoDB: Submit a detailed bug report to https://jira.mariadb.org/

InnoDB: If you get repeated assertion failures or crashes, even

InnoDB: immediately after the mysqld startup, there may be

InnoDB: corruption in the InnoDB tablespace. Please refer to

InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

InnoDB: about forcing recovery.

200617 22:54:24 [ERROR] mysqld got signal 6 ;

This could be because you hit a bug. It is also possible that this binary

or one of the libraries it was linked against is corrupt, improperly built,

or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see http://kb.askmonty.org/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help

diagnose the problem, but since we have already crashed,

something is definitely wrong and this may fail.

3、根据错误,网上查询,得到可通过设置恢复模式启动mysql

[设置恢复模式启动mysql官网](https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html)

编辑配置文件

vim /etc/my.cnf

添加配置项:

innodb_force_recovery = 1

其中后面的值设置为1、如果1不想再逐步增加为2/3/4/5/6等。直到能启动mysql为止,若不想尝试直接写6即可;

对于含有业务的服务器,最好是慢慢上调,以免永久性损坏数据。值得意义在官网有说明,摘录如下:

Only set innodb_force_recovery to a value greater than 0 in an emergency situation, so that you can start InnoDB and dump your tables. Before doing so, ensure that you have a backup copy of your database in case you need to recreate it. Values of 4 or greater can permanently corrupt data files. Only use an innodb_force_recovery setting of 4 or greater on a production server instance after you have successfully tested the setting on a separate physical copy of your database. When forcing InnoDB recovery, you should always start with innodb_force_recovery=1 and only increase the value incrementally, as necessary.

设置完成即重启mariadb服务:

systemctl restart mariadb

若重启失败,或启动时一直打印:200618 17:45:56 InnoDB: Waiting for the background threads to start

则在my.cnf中的[mysqld]中增加:innodb_purge_thread=0再尝试重启。

启动成功后测试数据库连接:mysql -uroot -p;

4、备份数据库

备份数据库方法在另一篇文章:mysql备份与恢复

5、备份数据文件与重启

关闭服务

systemctl stop mariadb

备份文件

mv /var/lib/mysql /root/mysql_back

正常模式在启动mysql:

vim /etc/my.cnf

注释配置项:

#innodb_force_recovery = 1

#innodb_purge_thread=0

再重启:

systemctl restart mariadb

6、数据恢复

至此大功告成!

四、经验与教训

出问题,可以先根据表面的错误去寻找答案,但是在试了各种方法后还不能解决,就需要换个思路,去仔细阅读日志

如果其值内容较复杂,则优先看error日志

解决问题的过程中,也要稍加总结分类已查到的解决方案,以免重复试错。

这篇文章仅仅简单记述一下解决问题的经过,同样的错误,可能有各种各样的理由。欢迎大家留言该错误的更多解决方案,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

路漫漫其修远兮,吾将上下而求索。。。

jira mysql 启动 失败_重启机器导致mysql启动失败相关推荐

  1. 电脑强制关机导致本地mysql无法启动_本地mysql因为电脑突然重启造成了mysql无法启动...

    本地mysql因为电脑突然重启造成了mysql无法启动 记录一次mysql断电后无法启动问题 无奈的断电.出现mysql无法启动. 1.查看error 130313 15:31:13 [Note] P ...

  2. WIN10系统设置了软件开机启动,但重启后软件无法启动

    WIN10系统设置了软件开机启动,但重启后软件无法启动 WIN10系统带盾牌的软件设置了软件开机启动,但重启后软件无法启动. 解决方法: 在注册表中新增启动项,HKEY_LOCAL_MACHINE\S ...

  3. 服务器异常重启,导致mysql启动失败,问题解决过程记录

    思路一:检查linux的安全策略. 1.查看SELinux状态:/usr/sbin/sestatus -v 2.如果状态为enabled,则为开启状态,将其设置关闭状态,以上截图为设置后的状态: 1) ...

  4. mysql运行平台_各个平台的mysql重启命令

    linux平台及windows平台mysql重启方法 Linux下重启MySQL的正确方法: 1.通过rpm包安装的MySQL service mysqld restart 2.从源码包安装的MySQ ...

  5. java伪装成mysql从节点_开发时java项目启动时需要连mysql等,有没有什么工具可以mock连接使得启动顺利不报错?...

    如果是非单元测试 mock 一个数据库连接不难,实际上只要 mock 一个 DataSource 对象,然后根据项目实际初始化方式放进去就可以了,而这个对象实际连接到本地的任意数据库即可.下面的例子使 ...

  6. java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出

    利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword  ...

  7. centos mysql卸载重装_提高性能,MySQL 读写分离环境搭建

    MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举一个成功的例子,后面有时间再和大家分享下使用 Do ...

  8. mysql 迁移方案_不同场景下 MySQL 的迁移方案

    本文内容 为什么要迁移 MySQL 迁移方案概览 MySQL 迁移实战 注意事项 技巧 总结 一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,是把实际存在的物体挪走,保证该物 ...

  9. mysql 崩溃恢复_超详细的MySQL数据库InnoDB崩溃恢复机制总结

    概述 数据库系统与文件系统大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证.下面 ...

最新文章

  1. 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
  2. 1069 The Black Hole of Numbers
  3. 第一门编程语言的选择无关紧要?
  4. python数据预测模型算法_如何对时间序列预测问题计算基准预测(python)
  5. MegaSAS RAID卡 BBU Learn Cycle周期的影响
  6. java获取0点的时间戳_Java获取凌晨时间戳的方法分析
  7. 初入Linux,M35作业第一弹,500字感想
  8. SpringCloud Gateway 服务网关,限流
  9. Service worker 的概念和用法
  10. 数据挖掘肿瘤预测_给你一个基因,利用数据挖掘能做什么?
  11. 【java】详解native方法的使用
  12. SQLServer 启动问题,服务器错误代码126 解决办法
  13. CSS 巧妙实现文字二次加粗再加边框
  14. WIPE与Format的种种神马情况
  15. PHP基础知识系统复习
  16. java中级程序员全面学习路线教程
  17. 使用HTML+CSS+JS 实现粒子动画
  18. 洛谷P3374 【模板】树状数组 1
  19. fckeditor文档库
  20. 微信小程序 音乐播放控件,监听播放事件, 音乐播放的基本实现

热门文章

  1. Linux 的相关介绍
  2. php qq对话,用php聊QQ
  3. python 二项分布_Python绘制的二项分布概率图示例
  4. java stringbuffer 转数组_JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder...
  5. audio标签控制音量_html中audio标签的使用
  6. oracle不能用uuid,Oracle 应用之--VirtualBox UUID问题
  7. Linux下升级安装Python-2.7.8版本
  8. [项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-SQLServer...
  9. 王高利:Kvm虚拟化(1)__基础搭建
  10. 实战KVM|kvm安装|创建linux|控制台|克隆