今天,湖北阿里云区域服务商捷讯技术小编为大家分享的主要是一个MySQL数据库服务不能正常启动的故障处理过程,以供大家参考。
一些my.cnf配置参数的修改,修改后,重启数据库,结果报错:
#servicemysqldstart
StartingMySQL...TheserverquitwithoutupdatingPIDfile(/data/mysql/v02c09.idc.huobi.com.pid).[FAILED]
查看错误日志文件:
#tail-50errors.log
14082312:03:16mysqld_safemysqldfrompidfile/data/mysql/v02c09.idc.huobi.com.pidended
14082312:06:16mysqld_safeStartingmysqlddaemonwithdatabasesfrom/data/mysql
14082312:06:16[Note]Plugin'FEDERATED'isdisabled.
14082312:06:16InnoDB:TheInnoDBmemoryheapisdisabled
14082312:06:16InnoDB:Mutexesandrw_locksuseGCCatomicbuiltins
14082312:06:16InnoDB:Compressedtablesusezlib1.2.3
14082312:06:16InnoDB:UsingLinuxnativeAIO
14082312:06:16InnoDB:Initializingbufferpool,size=12.0G
14082312:06:18InnoDB:Completedinitializationofbufferpool
14082312:06:18InnoDB:Error:combinedsizeoflogfilesmustbe<4GB
14082312:06:18[ERROR]Plugin'InnoDB'initfunctionreturnederror.
14082312:06:18[ERROR]Plugin'InnoDB'registrationasaSTORAGEENGINEfailed.
14082312:06:18[ERROR]Unknown/unsupportedstorageengine:InnoDB
14082312:06:18[ERROR]Aborting
14082312:06:18[Note]/usr/local/mysql/bin/mysqld:Shutdowncomplete
14082312:06:18mysqld_safemysqldfrompidfile/data/mysql/v02c09.idc.huobi.com.pidended
通过查询错误日志中“[ERROR]Plugin'InnoDB'initfunctionreturnederror.”一部分,在网络上找到一个解决方案:
只要删除MySQL目录下的ib_logfile0和ib_logfile1两个文件,就可以解决问题了。
于是按照这个步骤删除文件:
#pwd
/data/mysql
#ls-lib*
-rw-rw----1mysqlmysql136314880Aug2312:03ibdata1
-rw-rw----1mysqlmysql2097152000Aug2312:03ib_logfile0
-rw-rw----1mysqlmysql134217728Aug2212:11ib_logfile0.bak
-rw-rw----1mysqlmysql2097152000Aug2212:12ib_logfile1
-rw-rw----1mysqlmysql134217728Aug2212:01ib_logfile1.bak
#rmib_logfile0ib_logfile1
rm:removeregularfile`ib_logfile0'?yes
rm:removeregularfile`ib_logfile1'?yes
#ls-lib*
-rw-rw----1mysqlmysql136314880Aug2312:03ibdata1
-rw-rw----1mysqlmysql134217728Aug2212:11ib_logfile0.bak
-rw-rw----1mysqlmysql134217728Aug2212:01ib_logfile1.bak
日志文件正常移除后,再次重启数据库:
#servicemysqldstart
StartingMySQL...TheserverquitwithoutupdatingPIDfile(/data/mysql/v02c09.idc.huobi.com.pid).[FAILED]
仍然有报错,查看error.log日志文件,内容如下:
14082312:06:18mysqld_safemysqldfrompidfile/data/mysql/v02c09.idc.huobi.com.pidended
14082312:19:19mysqld_safeStartingmysqlddaemonwithdatabasesfrom/data/mysql
14082312:19:19[Note]Plugin'FEDERATED'isdisabled.
14082312:19:19InnoDB:TheInnoDBmemoryheapisdisabled
14082312:19:19InnoDB:Mutexesandrw_locksuseGCCatomicbuiltins
14082312:19:19InnoDB:Compressedtablesusezlib1.2.3
14082312:19:19InnoDB:UsingLinuxnativeAIO
14082312:19:19InnoDB:Initializingbufferpool,size=12.0G
14082312:19:21InnoDB:Completedinitializationofbufferpool
14082312:19:21InnoDB:Error:combinedsizeoflogfilesmustbe<4GB
14082312:19:21[ERROR]Plugin'InnoDB'initfunctionreturnederror.
14082312:19:21[ERROR]Plugin'InnoDB'registrationasaSTORAGEENGINEfailed.
14082312:19:21[ERROR]Unknown/unsupportedstorageengine:InnoDB
14082312:19:21[ERROR]Aborting
14082312:19:21[Note]/usr/local/mysql/bin/mysqld:Shutdowncomplete
14082312:19:21mysqld_safemysqldfrompidfile/data/mysql/v02c09.idc.huobi.com.pidended
查看第一条报错情况"InnoDB:Error:combinedsizeoflogfilesmustbe<4GB",说的是MySQL的InnoDB日志文件总大小必须小于4GB,一般设置为1300G,组数为3,这样总大小为3.9G;但该配置文件中昨天刚设置为2000M,没有设定组数;今天进行了这样的设置:
innodb_file_per_table
innodb_data_home_dir=/data/mysql
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/data/mysql
innodb_buffer_pool_size=12G
innodb_log_file_size=2000M
innodb_log_buffer_size=8M
innodb_log_files_in_group=3
innodb_file_format=Barracuda
innodb_log的大小为2000M,组数为3,总大小超过4GB,所以会报错。
将innodb_log_file_size=2000M参数修改为:
innodb_log_file_size=1300M
重新启动MySQL数据库服务:
[root@v02c09mysql]#servicemysqldstart
StartingMySQL.....................................[OK]
至此,各方面确认正常。
通过这个故障处理,可以得到如下结论:
1.对于MySQL数据库的innodb_log参数的相关修改,需要重启MySQL服务,并将原来的ib_logfile*转移成其他的名称,才能在新服务启动后生效;
2.对于出现类似“TheserverquitwithoutupdatingPIDfile(/data/mysql/v02c09.idc.huobi.com.pid).”都是体现的msyql服务没有启动成功,一般MySQL不能启动成功的原因都是my.cnf中的配置存在问题,才导致了服务不能正常启动,此时需要立即查找error.log来确认MySQL启动过程和报错信息;
3.在error.log中可能会有多个报错信息,一般后面的错误就是结果,查找错误原因,要看前面的,尤其要关注第一个出现的错误,如本次故障处理过程中“InnoDB:Error:combinedsizeoflogfilesmustbe<4GB”,虽然没有[ERROR]标记,但是第一个出现故障的问题,也明确了错误的原因;
4.明确了错误的原因后,有时需要修改my.cnf文件,或者需要重启MySQL数据库服务,这时都要先确认好状态,然后再进行操作;
5.对于MySQL数据库的常用参数,有些是有限制条件和参数范围的,需要确认好后再设定,否则设定也会无效或报错。
如果以上方法还不能帮助大家解决网站数据库发生故障的问题,欢迎致电:027-87498031。阿里云湖北授权服务中心提供阿里云服务器购买,云数据库,企业邮箱等产品,帮助用户实现阿里云故障排查,上云实施,环境搭建,数据迁移等区域服务,7*24小时保障安全稳定。