Mysql 直接拷贝数据库文件导致表不显示的问题

前言:

最近有一个需求,需要迁移数据库中的其中一个库,需要迁移的那个数据库占用了700多G的空间,所以采用直接拷贝数据库文件的方式,拷贝到另一台服务器后发现表不显示,记录本次问题。

注:两个服务器版本需要一致,本次迁移数据库版本位Mysql 5.7.4,不一致可能会导致某种未知问题。

 

1.找到目标所在服务器,进入需要迁移的数据库目录,使用SCP命令向目标服务器拷贝数据库文件。

1
scp -r ./* root@192.168.1.16:/home/mysql/data/test/

  

2.迁移完成后重启数据库

1
docker restart mysql

  

打开Navicat发现目标数据库表为空

 

 

 

但是实际上是有表的,只是没有显示出来,

3.进入容器后,发现是文件的权限问题不对,直接复制后的文件权限属于root,mysql数据库所需要的权限属于mysql,修改下文件权限

1
chown -R mysql:mysql .

  

修改完成查看文件权限已经修改位mysql

4.在Navicat导入表

1
alter table sys_logging import tablespace;

  

导入一张表进行测试,查看Navicat发现表已经恢复,如果是多张表需要多次导入,表的数据量多可能需要一定的时间才会导入完成,至此问题解决。

 

本文参考链接:

https://cloud.tencent.com/developer/article/1482804

https://www.cnblogs.com/yhnet/articles/16607408.html

如果还是没有显示表。尝试复制下原来mysql安装目录data里的 ibdata1;

并修改下文件权限。

 

posted @   看不见的黑夜  阅读(2412)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示