作者:手辨
实为吾之愚见,望诸君酌之!闻过则喜,与君共勉
前几天无意间遇到了一个数据库启动问题,说一下自己的解决办法
1.问题描述:
数据库启动出现如下错误:
180712 23:33:48 [ERROR] Error message file
'/usr/share/mysql/english
/errmsg.sys' had only 641 error messages,but it should contain at least
728 error messages.Check that the above file is the right version for this
program!
180712 23:33:48 [Note] Plugin 'FEDERATED' is disabled.
180712 23:33:48 InnoDB: The InnoDB memory heap is disabled
180712 23:33:48 InnoDB: Mutexes and rw_locks use GCC atomic
builtins
180712 23:33:48 InnoDB: Compressed tables use zlib 1.2.3
180712 23:33:48 InnoDB: Using Linux native AIO
180712 23:33:48 InnoDB: Initializing buffer pool, size =
128.0M
180712 23:33:48 InnoDB: Completed initialization of buffer
pool
180712 23:33:48 InnoDB: highest supported file format is
Barracuda.
InnoDB: The user has set SRV_FORCE_NO_LOG_REDO on
InnoDB: Skipping log redo
180712 23:33:48 InnoDB: Waiting for the background threads
to start
180712 23:33:49 InnoDB: 5.5.52 started; log sequence number
0
180712 23:33:49 InnoDB: !!! innodb_force_recovery is set to
6 !!!
180712 23:33:49 [ERROR] Aborting
180712 23:33:49 InnoDB: Starting shutdown...
180712 23:33:50 InnoDB: Shutdown completed; log sequence
number 8204
180712 23:33:50 [Note]
2.问题分析:
这个日志里,没有两个错误,第一个是:
180712 23:33:48 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys'
had only 641 error messages,but it should contain at least 728 error messages.
第二个是:
180712 23:33:49 [ERROR] Aborting
开始因为第一个错误和第二个错误隔得很远,并没有在意,在排查了其他方面都没有问题后,
考虑原因是:第二个错误是由第一个错误引起,需要先处理下第一个错误
问题原因:
这类情况一般是一台主机上安装了其他版本的mysql产生的,很大可能是第一个的errmsg.sys
文件被后面版本的替代,这里的错误是指:errmsg.sys文件应该有
728个错误信息,但是当前
只有641个,与当前的程序版本无法对应上
问题处理:
我是下载与当前的版本相对应的二进制文件,解压后,从对应的目录下解压出来errmsg.sys文件,
替换掉后启动,如下