MySQL数据库innodb启动失败无法重启成功导出数据库的方法

自mysql5.5版本以后,随着大家对Mysql数据库要求越来越高,也有越来越多的服务器环境在安装Mysql数据库的时候默认使用InnoDB数据库引擎做为默认引擎,而之前使用MyISAM数据库引擎的人也为了应对复杂的事务处理和高并发而转向InooDB。

 

InnoDB数据库引擎应对复杂事件和并发是好很多但在这些好处面前,以前的网站运营人员也面临一个问题,那就是偶然有一天,你的服务器上数据库因一个误操作导致数据库服务挂掉了,怎么重启都重启不起来。这个时候,很多人都会想到把数据库文件备份,重新安装不就解决了吗?想法很美好,但现实确不是那么回事。

 

小编以前使用的数据库默认数据库引擎都是MyISAM,网站换服务器的时候,只需要把数据库文件打包复制到新的服务器就可以了,前段时间由于想尝试新的服务器软件和PHP7.2带来的优越性能,安装数据库的时候选择了mysql5.7.22版本,默认的数据库引擎则选择了InnoDB,昨天检查服务器的时候,发现数据库日志里面产生了很多错误提示,经检查,是一个wordpress网站的数据库一个表因不能被InnoDB读取不断的产生错误日志,通过phpmyadmin 对有问题的进行修复,由于数据库使用的数据库引擎是MyISAM,于是我点了修复,结果提示:2006, MySQL server has gone away ,然后我就想着试一下优化怎么样,点击后,phpmyadmin控制面板的root账号直接退出了,再登录就提示:connect(): (HY000/2002): No such file or directory ,再一看服务器上的网站,所有网站打开时都提示数据库连接失败,这下玩大了!

但知道原因是数据库服务挂了,连接ssh重启数据库服务,结果提示:Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid),在网上找了一番后最后还是放弃了,备份原来的数据库,卸载服务器上的数据库,重新安装,安装完后重启都没问题,但原来数据库里面MyISAM类型的数据库文件拷入后在phpmyadmin里面查看都读得出来,也都没问题,但是innodb类型的数据库文件拷入后,读不出来,从网上看了很多innodb相关的数据库备份的内容也知道是ibdata1的文件,备份新数据库目录下面的ibdata1文件,停止数据库服务,删除ibdata1以及ib_logfile0和ib_logfile1两个文件夹,拷入原来备份的数据库下面的ibdata1文件到新的数据库目录,重启数据库,没反应,还是提示:Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid),这可怎么办?

 

换一种思路,想办法把原来数据库中InnoDB类型的数据库导出来,然后再导入到新的数据库中这样问题就解决了,在网上一番查找和测试,终于找到了解决问题的方法。步骤如下:

以没重装数据库为例,还是原来的数据库,数据库服务启动不起来,删除ib_logfile0和ib_logfile1两个文件夹,修改数据库配置文件my.cnf,在[mysqld] 下面加入

innodb_force_recovery = 6

innodb_purge_thread = 0

保存文件,重启数据库服务发现可以启动起来了,登录phpmyadmin控制面板也没问题了,这时候在具体的数据库(InnoDB类型)里面也可以看到文件了,但这些文件都是只读的,你如果这时候想登录网站后台,是登录不了的,所以这也不是长久解决问题的办法,所以直接使用工具导出数据库是最稳妥的办法。MyISAM类型的数据库不受这个影响,直接把文件拷贝到其它服务器上就可以使用。有时候查找问题比重装数据库用的时间更久,所以建议还是直接卸载原来的数据库重装比较快,然后新建所有数据库导入数据就行了。

 

如果你已经卸载了服务器上的数据库进行了重装,那么备份新装的数据库所有文件,停止数据库服务,删除新装的数据库目录下面ibdata1以及ib_logfile0和ib_logfile1两个文件夹,把旧数据库目录下面的ibdata1文件拷贝到新安装的数据库目录下面,然后修改数据库配置文件my.cnf,在[mysqld] 下面加入

innodb_force_recovery = 6

innodb_purge_thread = 0

保存,重启数据库服务,登录phpmyadmin,导出原来想要导出的innodb类型的数据库,恢复新数据库的ibdata1文件,删除ib_logfile0和ib_logfile1两个文件夹以及数据库配置文件my.cnf加入的那两行代码,保存,重启数据库服务就可以了,新建数据库把导出的数据库文件导入进去就行了。

网上那些修复Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid)  的方法,例如:修改数据库目录权限,把配置文件里面的localhost修改成127.0.0.1,方法很多但几乎没用。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值