前言:
最近有一个需求,需要迁移数据库中的其中一个库,需要迁移的那个数据库占用了700多G的空间,所以采用直接拷贝数据库文件的方式,拷贝到另一台服务器后发现表不显示,记录本次问题。
注:两个服务器版本需要一致,本次迁移数据库版本位Mysql 5.7.4,不一致可能会导致某种未知问题。
1.找到目标所在服务器,进入需要迁移的数据库目录,使用SCP命令向目标服务器拷贝数据库文件。
scp -r ./* [email protected]:/home/mysql/data/test/
2.迁移完成后重启数据库
docker restart mysql
打开Navicat发现目标数据库表为空
但是实际上是有表的,只是没有显示出来,
3.进入容器后,发现是文件的权限问题不对,直接复制后的文件权限属于root,mysql数据库所需要的权限属于mysql,修改下文件权限
chown -R mysql:mysql .
修改完成查看文件权限已经修改位mysql
4.在Navicat导入表
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;
并修改下文件权限。
标签:表不,文件,数据库,Mysql,导入,mysql,拷贝,权限,迁移 From: https://www.cnblogs.com/kanbujiandeheiye/p/16931515.html