将二进制文件导入mysql

将二进制文件导入mysql

我有数据库的二进制文件 .fo 和 .ibd 并且我想将它们导入到 mysql。 我做了什么 ?

  • 备份 mysql 文件夹: cp -a /var/lib/mysql /var/lib/mysql-backup
  • 将数据库文件夹从旧机器复制到 /var/lib/mysql
  • 从旧数据库覆盖 ib* (ib_logfile* , ibdata )
  • 启动 mysql

我拥有的 ?

  • 文件已导入,但是当我尝试在数据库中输入任何表时,我得到的表不存在,尽管我可以在 phpmyadmin 上看到表,但我无法访问它,请帮忙!! 表不存在

答案1

检查 ib* 的权限。

如果您手动编辑使用 InnoDB 表的数据库的目录,则需要确保 MySQL datadir 根目录中的 ib* 文件具有正确的权限。

  • 所有者和群组需要mysql
  • ib* 文件的权限需要为 644。

如果这不起作用:mysqldump -u {user} {database} > db.sql对数据库执行操作并从命令行重新加载数据库(mysql -u {user} < db.sql)。


如果有外键违规,这两个命令将修复这些问题(并修复表):

SET FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=1;

相关内容