跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Mysql搬移,数据表出问题,怎么修复?

是通过复制、粘贴 mysql 的整个data文件夹进行恢复数据的 现在发现MyISAM类型的表都是正常的。 但是有个数据库能列出数据表,但是点击表之后就说:
#1146 - Table 'eval.class' doesn't exist
怎么修复? MySQL(Linux) MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。 下载 回复讨论(解决方案) 只有 MyISAM类型 的表可以通过拷贝文件进行迁移 其他类型的表都必须通过迁移工具迁移 拷贝全了没有? 里面的ibdata1文件拷贝了没有? 直接拷贝 ibdata1 是不妥当的 1、他会覆盖目标数据库的否写表数据 2、把原库的垃圾也带过来了 3、会因磁盘格式的不同等原因,在创建数据块索引时发生错误,无法修复时就废掉了 ibdata1也拷贝了。 有frm文件也不能修复或拿到部分数据么? 先停止 mysql 服务 用命令行方式启动 mysql 你会看到有关文件修复的各种信息 我以前也做过这种在两个 mysql 下直接拷贝文件的事情,但总是没能完美的处理成功 后来都是用指派 datadir 和 innodb_data_file_path 来完成不同 mysql 下数据共享的 你或许可以这样做:在原来的 mysql 中把   innodb 的表转换成 MyISAM 的表(管理工具中只是点点鼠标而已) 将转换后的 MyISAM 表拷贝到目标位置,然后在转换成 innodb 为什么不用mysqldump来做?如果两个mysql版本不一致,可能还需要工具修复下导出的sql文件 直接copy文件夹这种不可取 先停止 mysql 服务 用命令行方式启动 mysql 你会看到有关文件修复的各种信息 我以前也做过这种在两个 mysql 下直接拷贝文件的事情,但总是没能完美的处理成功 后来都是用指派 datadir 和 innodb_data_file_path 来完成不同 mysql 下数据共享的 你或许可以这样做:在原来的 mysql 中把   innodb 的表转换成 MyISAM 的表(管理工具中只是点点鼠标而已) 将转换后的 MyISAM 表拷贝到目标位置,然后在转换成 innodb 原来的mysql已经没了,只有备份文件了,可以恢复吗? 那原来的 mysql 的版本号是多少? 给个链接,看看对你是否有帮助  http://www.baidu.com/s?wd=innodb+frm%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F&ie=utf-8 给个链接,看看对你是否有帮助  http://www.baidu.com/s?wd=innodb+frm%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F&ie=utf-8 感谢! 已经可以了 老版本的数据文件和表文件是在data目录下的 新版本的数据文件在mysql目录下,表文件在data目录下 移动一下ibdata1文件就可以了。

相关文章