[问题现象]

服务器在运行过程中,因人为意外导致电源被拔,服务器宕机,mysql重启不成功,报错如下

根据提示,输入systemctl status mysql.service和journalctl -xe查看日志,经过一番百度谷歌折腾也是无果。(很多时候,不能因为突发事件就“病急乱投医”)

最后在mysql 的日志处看到了报错日志

如果centos是通过yum安装的mysql,那么日志一般在/var/log/mysql.log

查看到日志

  1. 2018-11-29T08:39:18.977374Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  2. 2018-11-29T08:39:18.978051Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.22) starting as process 11192 ...
  3. 2018-11-29T08:39:18.979893Z 0 [Note] InnoDB: PUNCH HOLE support available
  4. 2018-11-29T08:39:18.979910Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
  5. 2018-11-29T08:39:18.979914Z 0 [Note] InnoDB: Uses event mutexes
  6. 2018-11-29T08:39:18.979916Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
  7. 2018-11-29T08:39:18.979918Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
  8. 2018-11-29T08:39:18.979920Z 0 [Note] InnoDB: Using Linux native AIO
  9. 2018-11-29T08:39:18.980073Z 0 [Note] InnoDB: Number of pools: 1
  10. 2018-11-29T08:39:18.980135Z 0 [Note] InnoDB: Using CPU crc32 instructions
  11. 2018-11-29T08:39:18.981011Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
  12. 2018-11-29T08:39:18.985294Z 0 [Note] InnoDB: Completed initialization of buffer pool
  13. 2018-11-29T08:39:18.986268Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
  14. 2018-11-29T08:39:18.997726Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
  15. 2018-11-29T08:39:18.998629Z 0 [Note] InnoDB: Log scan progressed past the checkpoint lsn 23732273189
  16. 2018-11-29T08:39:18.998641Z 0 [Note] InnoDB: Doing recovery: scanned up to log sequence number 23732273507
  17. 2018-11-29T08:39:18.998881Z 0 [Note] InnoDB: Database was not shutdown normally!
  18. 2018-11-29T08:39:18.998887Z 0 [Note] InnoDB: Starting crash recovery.
  19. 2018-11-29T08:39:19.110899Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
  20. 2018-11-29T08:39:19.110915Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
  21. 2018-11-29T08:39:19.110957Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
  22. 2018-11-29T08:39:19.149162Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
  23. 2018-11-29T08:39:19.149810Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
  24. 2018-11-29T08:39:19.149818Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
  25. 2018-11-29T08:39:19.150158Z 0 [Note] InnoDB: Waiting for purge to start
  26. 2018-11-29 16:39:19 0x7f1219ffb700 InnoDB: Assertion failure in thread 139715722327808 in file fut0lst.ic line 85
  27. InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
  28. InnoDB: We intentionally generate a memory trap.
  29. InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
  30. InnoDB: If you get repeated assertion failures or crashes, even
  31. InnoDB: immediately after the mysqld startup, there may be
  32. InnoDB: corruption in the InnoDB tablespace. Please refer to
  33. InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
  34. InnoDB: about forcing recovery.
  35. 08:39:19 UTC - mysqld got signal 6 ;
  36. This could be because you hit a bug. It is also possible that this binary
  37. or one of the libraries it was linked against is corrupt, improperly built,
  38. or misconfigured. This error can also be caused by malfunctioning hardware.
  39. Attempting to collect some information that could help diagnose the problem.
  40. As this is a crash and something is definitely wrong, the information
  41. collection process might fail.

通过搜索

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

了解到,大部分都是因为服务器在数据库没用停止服务的情况下宕机,导致数据丢失

解决方法有俩个:

1、如果是大佬,则继续深入踩坑研究,运气好能在google查到相似问题解决方案(反正我是没查到

2、直接备份数据库,然后初始化数据库后进行恢复数据

[问题原因]

服务器宕机导致innodb的数据和实际数据库的数据不一致,在启动的时候就报错了

[解决方法]

1. Forcing InnoDB Recovery

在 /etc/my.cnf中添加如下配置:

  1. [mysqld]
  2. innodb_force_recovery = 1

其中后面的值设置为1、如果1不能启动成功,再逐步增加为2/3/4等。直到能启动mysql为止!!!

重启成功后,测试数据库是否可以正常连接:

  1. mysql -u root -p 123456

能连进去的话就exit退出

2.数据备份

找一个自己找得到的目录做数据备份

  1. mysqldump -u root -p 123456 --all-databases > all_mysql_backup.sql

3.初始化数据库

  1. mysqld --initialize
    启动数据库
    service mysqld start

如果报错,则显得去删除mysql的data目录

这里的data目录实际就是你数据库存放的目录,比如知道的/var/lib/mysql

4.数据恢复

登录数据库

  1. mysql -u root -p 123456

恢复

  1. source /备份目录/all_mysql_backup.sql

服务器宕机,mysql无法启动,job for mysql.service failed because the process exited with error code,数据库备份与恢复的更多相关文章

  1. CentOS启动docker1.13失败(Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.)

    一.启动失败 1.启动docker [root@localhost ~]# systemctl start docker Job for docker.service failed because t ...

  2. Jenkins 安装启动提示“iJob for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.”

    通过RPM安装Jenkins简单方便,不太需要复杂的过程,但是在安装完成以后启动Jenkins的时候提示“Starting jenkins (via systemctl): Job for jenki ...

  3. DOCKER启动失败Job for docker.service failed because the control process exited with error code. See "syste mctl status docker.service" and "journalctl -xe" for details.

    [root@localhost ~]# systemctl start docker Job for docker.service failed because the control process ...

  4. Linux系统Docker启动问题Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"

    在Liunx中使用Docker, 注: Liunx使用的是在虚拟机下的centOS7版本在刚开始安装Docker时没有任何错误, 但是在后续的docker启动过程中, 出现以下问题: [root@zk ...

  5. centos7启动httpd服务失败:Job for httpd.service failed because the control process exited with error code.

    centos7启动httpd命令有两个可以用 service httpd start    systemctl start httpd.service 如果出现如下报错 Job for httpd.s ...

  6. CentOS7启动SSH服务报:Job for ssh.service failed because the control process exited with error code

    CentOS7启动SSH服务报:Job for ssh.service failed because the control process exited with error code....... ...

  7. CentOS7 启动[root@localhost ~]# systemctl start docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for de

    1).在linux虚拟机上安装docker步骤:1.检查内核版本,必须是3.10及以上uname ‐r2.安装dockeryum install docker3.输入y确认安装4.启动docker[r ...

  8. docker 启动失败 Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

    CentOS7安装docker,安装成功后,启动失败 提示: 我们可以看到此处它提示是Failed to start Docker Application Container Engine. 于是在网 ...

  9. 启动Nginx服务失败:Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

    首次接触nginx,安装完使用命令 service nignx restart  后,出现这个错误,并按照提示给出的命令查看错误详情  systemctl status nginx.service   ...

随机推荐

  1. C++函数模板的显示调用与隐式调用

    C++函数模板可以显示调用与可以隐式调用 首先定义函数模板: template <class T> inline const T& c_max (const T& a, c ...

  2. 打开Vs2010时,卡在加载工具箱内容 不动了

    我是直接打开Visual Studio 2010,而不是以打开解决方案的方式打开.然后就在左下角显示“正在从包‘Microsoft.VisualStudio.IDE.ToolboxControlsIn ...

  3. SDUT OJ 之 人活着系列之寻找最完美的人生

    人活着系列之寻找最完美的人生 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 也许,人活着就是要尝试人世间的酸甜苦辣,喜怒哀乐,经 ...

  4. 1.1 BASIC PROGRAMMING MODEL(算法 Algorithms 第4版)

    1.1.1 private static void exercise111() { StdOut.println("1.1.1:"); StdOut.println((0+15)/ ...

  5. IntelliJ IDEA 同时启动多个Tomcat实例端口是会冲突

  6. L92

    The Difference between Honesty and Cheating We sign our names to various documents all the time. Som ...

  7. hdu-3078 Network(lca+st算法+dfs)

    题目链接: Network Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) P ...

  8. leetcode 104 Maximum Depth of Binary Tree(DFS)

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  9. Vue 中数据流组件

    好久不见呀,这两年写了很多很多东西,也学到很多很多东西,没有时常分享是因为大多都是我独自思考.明年我想出去与更多的大神交流,再修筑自己构建的内容. 有时候我会想:我们遇到的问题,碰到的界限,是别人给的 ...

  10. Java命名规范(简略)

    1.包 全部小写,由域名定义前缀. 例如:teach.golddrem.javagroup 2.类 开头字母大写,后边每个单词的首字母都大写.如果有缩写,缩写部分全部大写. 例如:Informatio ...