黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

mysql innodb異常如何處理

mysql innodb異常如何處理

本文講解"mysql innodb異常怎么處理",希望能夠解決相關(guān)問題。

一、回退重新裝mysql

為避免再從其他地方導(dǎo)入這個(gè)數(shù)據(jù)的麻煩,先對(duì)當(dāng)前庫的數(shù)據(jù)庫文件做了個(gè)備份(/var/lib/mysql/位置)。接下來將percona server 5.7包進(jìn)行了卸載,重新安裝原先老的5.1.71的包,啟動(dòng)mysql服務(wù),提示unknown/unsupported table type: innodb,無法正常啟動(dòng)。

110509?12:04:27?innodb:?initializing?buffer?pool,?size?=?384.0m
110509?12:04:27?innodb:?completed?initialization?of?buffer?pool
innodb:?error:?log?file?./ib_logfile0?is?of?different?size?0?5242880?bytes
innodb:?than?specified?in?the?.cnf?file?0?157286400?bytes!
110509?12:04:27?[error]?plugin?'innodb'?init?function?returned?error.
110509?12:04:27?[error]?plugin?'innodb'?registration?as?a?storage?engine?failed.
110509?12:04:27?[error]?unknown/unsupported?table?type:?innodb
110509?12:04:27?[error]?aborting
110509?12:04:27?[note]?/usr/sbin/mysqld:?shutdown?complete

刪除/var/lib/mysql/目錄,重新啟動(dòng)數(shù)據(jù)庫服務(wù),并初始化,發(fā)現(xiàn)正常,show engines能發(fā)現(xiàn)有innodb引擎。再將數(shù)據(jù)庫停掉,將之前備份的/var/lib/mysql/目錄的內(nèi)容覆蓋當(dāng)前位置的內(nèi)容,重啟。又發(fā)現(xiàn)不能進(jìn)行啟動(dòng),報(bào)錯(cuò)內(nèi)容和剛剛一樣。

/var/lib/mysql目錄內(nèi)容的結(jié)構(gòu)如下:

-rw-rw----?1?mysql?mysql?10485760?2月?26?18:10?ibdata1
-rw-rw----?1?mysql?mysql?5242880?2月?26?18:10?ib_logfile0
-rw-rw----?1?mysql?mysql?5242880?2月?26?17:20?ib_logfile1
drwx------?2?mysql?mysql?4096?2月?26?17:20?mysql
drwx------?2?mysql?mysql?4096?2月?26?17:24?wiki

wiki目錄是測(cè)試數(shù)據(jù)的庫,ibdata1文件為數(shù)據(jù)文件,ib開頭的兩個(gè)文件為日志文件,mysql 目錄下為系統(tǒng)庫相關(guān)的東西 。再次使用初始化的數(shù)據(jù),并將wiki目錄和ibdata1文件覆蓋到/var/lib/mysql 目錄下,可以正常啟動(dòng),也可以正常登錄。

二、innodb模塊重裝

不過在通過mysqldump備份時(shí),又提示unknow table engine “innodb” 。登錄后,查看當(dāng)前所有的引擎類型,發(fā)現(xiàn)其中果然不存在innodb類型:

mysql innodb異常如何處理

通過alter命令修改其中一個(gè)表的類型為myisam ,發(fā)現(xiàn)仍然報(bào)錯(cuò)。

mysql innodb異常如何處理

通過 find 查找發(fā)現(xiàn)/usr/lib64/mysql/plugin/目錄下有ha_innodb_plugin.so文件。印象中mysql5以后的版本支持在線插件安裝 。通過下面查看確認(rèn),果然支持:

mysql innodb異常如何處理

使用如下命令加載時(shí),發(fā)現(xiàn)不成功:

install?plugin?innodb?soname?'ha_innodb.so';
三、備份

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

plugin-load=innodb=ha_innodb_plugin.so
plugin_dir=/usr/lib64/mysql/plugin/
default-storage-engine=innodb

發(fā)現(xiàn)仍啟動(dòng)失敗。查看mysql-error.log發(fā)現(xiàn)有如下內(nèi)容:

innodb:?database?page?corruption?on?disk?or?a?failed
innodb:?file?read?of?page?7.
innodb:?you?may?have?to?recover?from?a?backup.
innodb:?it?is?also?possible?that?your?operating
innodb:?system?has?corrupted?its?own?file?cache
innodb:?and?rebooting?your?computer?removes?the
innodb:?error.
innodb:?if?the?corrupt?page?is?an?index?page
innodb:?you?can?also?try?to?fix?the?corruption
innodb:?by?dumping,?dropping,?and?reimporting
innodb:?the?corrupt?table.?you?can?use?check
innodb:?table?to?scan?your?table?for?corruption.
innodb:?see?also?http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html

打開forcing-innodb-recovery官方頁面,發(fā)現(xiàn)可以通過指定innodb_force_recovery參數(shù),進(jìn)行強(qiáng)制啟動(dòng)和恢復(fù)。在/etc/my.cnf中增加如下內(nèi)容:

innodb_force_recovery=6

重新啟動(dòng)成功了。通過mysqldump備份也沒有問題,將備份數(shù)據(jù)導(dǎo)入其他主機(jī)發(fā)現(xiàn)也正??梢詼y(cè)試。

這下就好搞了,將mysql徹底刪除,重新安裝percona server 5.7,安裝完后,建庫,還原數(shù)據(jù),程序重新連接,一切ok。

關(guān)于 "mysql innodb異常怎么處理" 就介紹到此。希望多多支持碩編程。

下一節(jié):mysql中的ifnull、nullif和isnull怎么使用

mysql教程

相關(guān)文章