MySQL损坏数据恢复

MySQL损坏数据恢复,第1张

    mysql>CREATE DATABASE sakila

    mysql>USE sakila

    mysql>CREATE TABLE actor (

        actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

        first_name VARCHAR(45) NOT NULL,

        last_name VARCHAR(45) NOT NULL,

        last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

        PRIMARY KEY  (actor_id),

        KEY idx_actor_last_name (last_name)

      )ENGINE=InnoDB DEFAULT CHARSET=utf8

    ALTER TABLE {库名}.{表名} DISCARD TABLESPACE

    例:

    mysql>ALTER TABLE sakila.actor DISCARD TABLESPACE

    cp /backup_directory/actor.ibd path/to/mysql-5.7/data/sakila/

    ALTER TABLE {库名}.{表名} IMPORT TABLESPACESHOW WARNINGS

    例:

    mysql>ALTER TABLE sakila.actor IMPORT TABLESPACESHOW WARNINGS

    Query OK, 0 rows affected, 1 warning (0.15 sec)

    Warning | 1810 | InnoDB: IO Read error: (2, No such file or directory)

    Error opening './sakila/actor.cfg', will attempt to import

    without schema verification

    mysql>SELECT COUNT(*) FROM sakila.actor

    +----------+

    | count(*) |

    +----------+

    |      200 |

    +----------+

Windows上安装了XMAPP-controller之后间歇性出现MySQL无法启动,查看日之后发现是innodb的报错,报错信息如下:

度娘上各种答案无法解决,后来直接看官方文档,直接上解决方案:

踩坑指南 - - *** 作配置前需要做这些 *** 作:

1、配置my.cnf 配置innodb_force_recovery = 1 6 试到正确为止,重启MySQL

2、导出数据脚本 mysqldump -uroot -p123456 test >test.sql 导出SQL脚本。或者用Navicat将所有数据库/表导入到其他服务器的数据库中。 注意:这里的数据一定要备份成功。然后删除原数据库中的数据。

3、删除ib_logfile0、ib_logfile1、ibdata1 备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除

4、配置my.cnf 将my.cnf中innodb_force_recovery 这行配置删除或者配置为innodb_force_recovery = 0,重启MySQL服务

5、将数据导入MySQL数据库 mysql -uroot -p123456 test <test.sql

或者用Navicat将备份的数据导入到数据库中。 如果在导入数据过程中发生tablespace不存在的问题,请删除data目录相应database下的文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6148283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存