文件修复

如何修复读取“ibdata1”输入/输出错误的cp错误?

简介:本文讨论MySQL错误“cp: error loading ' ibdata1 ' input/output”。它还提到了这个错误背后的原因和修复它的步骤。此外,探索MySQL修复工具如何帮助恢复InnoDB数据,当没有其他工作。


免费下载
免费下载

几个MySQL用户报告收到错误"cp: error reading 'ibdata1': Input/output"当试图复制MySQL数据目录中的文件时。

该错误之后会出现另一条错误消息,指出无法复制ib_logfile。完整的错误信息如下:“cp: error reading 'ib_logfile1': Input/output error”。

错误的原因是什么?

硬件故障或硬盘出现坏道导致错误。您可能会遇到硬件问题,因为在广泛的读写操作期间系统突然关闭,过热等。硬件错误会导致ibdata1损坏。

步骤修复" cp: error reading ' ibdata1 ' input/output "错误

按照下面给出的顺序来解决这个错误:

步骤1—您可以尝试复制ibdata1和其他文件(ibd和from),忽略读(I/O)错误。磁盘转储(dd)命令如下:

# dd if=/var/lib/mysql/ibdata1 of=/disk1/ibdata1 conv=noerror

dd命令将有问题的ibdata1文件(/var/lib/mysql/ibdata1)逐位复制到输出文件(/disk1/ibdata1)。

进一步的,当dd与…一起使用conv = noerror,如果有一个坏块,它不会在输出文件中写入任何内容。

步骤2—拷贝操作完成后,执行innodb_force_recovery命令检查是否可以启动MySQL服务器。您可以运行innodb_force_recovery值为1到6,直到服务器启动。如果启动,使用以下命令执行mysqldump:

注意:MySQL可能在此过程中崩溃。为了避免这种情况,请尝试一次对一个表进行转储(备份)。

Mysqldump -u -p db_name tbl_name > dumpfilename.sql

其中,u代表用户名,p代表密码,用于连接MySQL服务器。此外,db_name是包含需要备份的表(tbl_name)和dumpfilename的数据库名。SQL是路径和备份文件的名称。

详细学习如何使用mysqldump命令备份和恢复MySQL数据库

MySQL服务器无法启动怎么办?

如果服务器没有启动,则无法恢复MySQL表。这就是MySQL修复工具像MySQL的恒星修复会派上用场。该工具帮助修复使用InnoDB和MyISAM存储引擎创建的数据库。

以下是软件的工作原理:

  • 下载并安装MySQL软件后,启动Stellar Repair for MySQL。
  • 免费下载
  • 选择MySQL版本并单击浏览选择包含要修复的ibdata1文件的数据文件夹。点击好吧

主屏幕

  • 选择要修复的MySQL数据库并按修复

mysql数据库

  • 软件显示修复过程的进度。

修复进展

  • 当出现“修复完成”消息框时,单击好吧

Mysql数据库修复完成

  • 软件预览修复文件中可恢复的组件。

预览mysql可恢复数据

  • 选择需要恢复的数据库对象,然后单击保存数据库文件
  • 在“保存数据库”对话框中,选择MySQL为保存修复后的文件的文件格式,然后单击保存

注意:您也可以将修复后的文件保存为CSV、XLS或HTML文件格式。

一旦修复的文件被保存,你会看到一个“保存完成”的消息框。

保存mysql数据库

结论

错误"cp: error reading 'ibdata1' input/output"通常是由于硬件故障导致的,并且可能导致ibdata1损坏。尝试使用dd命令将ibdata1和其他数据文件复制到其他驱动器。如果MySQL服务器在这个过程中崩溃了,你需要运行innodb_force_recovery来启动服务器。如果你不能恢复数据,恒星修复MySQL软件可以帮助修复和恢复数据从损坏的数据文件。

76% 很多人觉得这篇文章很有帮助