mysql数据库ibdata1损坏,数据迁移

引用: https://blog.csdn.net/xingnang2008/article/details/82503319?utm_term=ibdata1mysql%E6%81%A2%E5%A4%8D&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-2-82503319&spm=3001.4430

1—–(SRVFORCEIGNORECORRUPT):忽略检查到的corrupt页。
2—–(SRVFORCENOBACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
3—–(SRVFORCENOTRXUNDO):不执行事务回滚操作。
4—–(SRVFORCENOIBUFMERGE):不执行插入缓冲的合并操作。
5—–(SRVFORCENOUNDOLOGSCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6—–(SRVFORCENOLOG_REDO):不执行前滚的操作。

参考上面,用6启动了。但是无法还原回去了。正常依旧无法启动。

① /data下的 ibdata1 、ib_logfile0、ib_logfile1。(改名,保险),ibdata1 后面还有用呢。 

② 重启mysql服务   。

net start mysql

重启后 自动刚创建新的  ibdata1 、ib_logfile0、ib_logfile1。

6、保留,将新创建的ibdata1  改名:新的 ibdata1_x

7、用老的ibdata1 和  innodb_force_recovery = 6 启动mysql 这时库是只读的。 

(打开 Mysql 安装目录下的my.ini 文件在  [mysqld]  下 innodb_force_recovery =  6 就可以)
重新启动mysql服务,备份数据。备出来 .sql

8、关闭mysql服务,恢复my.ini 文件,改回到新的ibdata1 ,开启mysql服务,导入.sql

 获取数据库每个表的行数

select table_name,table_rows from information_schema.tables where TABLE_SCHEMA = 'phalcon_invo' order by table_rows desc

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注