其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库,
但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错、卡死。
最后参考网上的帖子,复制源数据库的data目录下的文件,完成数据迁移。
步骤如下:
1.首先要确定data目录在哪里
这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数据,但是data目录到底在哪里,并未说明,我开始是拷贝的MySQL安装目录中的data文件夹,但是显然这是错误的,拷贝后并未出现需要的数据库。
其实是拷贝mysql的数据存放路径,具体如下
C:\ProgramData\MySQL\MySQL Server 5.6\data(注意:ProgramData文件夹是隐藏的,需要先显示出来)
(也可以使用命令 show global variables like "%datadir%";来查找data目录)
2.需要拷贝的文件包括:数据库文件(例如上图所示的gd_base、common、gd_dbwizard等数据库)和 ibdata1 (这个必须拷贝)
3.停掉mysql服务,将拷贝的文件复制到目标数据库的data目录中(路径和上面的一样在ProgramData文件夹中)
4.复制好后,启动mysql服务,用数据库连接工具连接数据库即可看到导进来的数据库
打开迁移后的数据库、数据表如报错:Errcode: 13 "Permission denied" 则是权限问题,需要在迁移后的数据库data目录下响应的库名,加上权限:
参考文档:
mysql报错Errcode: 13 "Permission denied" https://blog.csdn.net/zxx540/article/details/79106770
CentOS7 安装Mysql5.7 解压缩版 https://www.jianshu.com/p/9043223c4168