从MySQL数据库修复/恢复数据

时间:2018-09-11 12:23:14

标签: mysql database mariadb innodb repair

我的树莓派(InnoDB引擎)上存储的MySQL数据库存在很大问题。 我在这个领域不是很熟练,但是我会尽力向您解释这个问题。

每次尝试启动MySQL崩溃时,我都需要恢复存储在数据库中的数据。 错误是:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

我刚刚尝试使用innodb_force_recovery标志从1到6启动MySQL,但是它仍然崩溃。从日志中,我了解到问题出在某些表内部。

我尝试用https://recovery.twindb.com/检查我的数据库文件,结果表明“ mysql”数据库中的某些表需要恢复,“生产”数据库(我的)中的表还可以,确实可以看到我在该网站上的所有数据。 如何轻松恢复我的数据?我可以使用一些免费工具或脚本吗? 我拥有所有文件,分别为ibdata01,*。frm,*。ibd

1 个答案:

答案 0 :(得分:0)

您可以使用Undrop for InnoDB在recovery.twindb.com后面的工具。 要恢复损坏的数据库,您需要执行https://twindb.com/recover-corrupt-mysql-database/

中的步骤

解析ibd文件:

# ./stream_parser -f /var/lib/mysql/sakila/actor.ibd

PRIMARY索引中的转储记录:

# ./c_parser -6f pages-actor.ibd/FIL_PAGE_INDEX/0000000000000015.page \
    -t sakila/actor.sql \
    > dumps/default/actor 2>&1 dumps/default/actor_load.sql

然后加载转储:

# mysql --local-infile sakila < dumps/default/actor_load.sql