利用拷贝data目录的方式进行迁移mysql5.7数据库

利用拷贝data目录文件的方式迁移mysql数据库

其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库,
但是这次数据文件过大,大约有57个G,使用命令行导入,效果不是很好,经常在执行过程中报错、卡死。

最后参考网上的帖子,复制源数据库的data目录下的文件,完成数据迁移。

 步骤如下: 1、将编译好的Mysql5.7 进行解压安装初始化 
> 下载5.7编译好的tar包 链接:https://pan.baidu.com/s/1mgHZtyEvC-hnAfCY3mvCsA 
> 提取码:1j7o
首先创建对应的目录
/databak/data/IoT-prod-innerstatisticserv
将mysql5.7的tar.gz包解压到/databak/data/IoT-prod-innerstatisticserv下面 
修改my.cnf文件 并指定端口
 
在这里 为防止共享表空间 时间久了导致idbata1文件过大 因此查看是否开启独立表空间
innodb_file_per_table=1
同时修改vim /databak/data/IoT-prod-innerstatisticserv/mysql5.7/support-files/mysql.server
指定
basedir=/databak/data/IoT-prod-innerstatisticserv/mysql5.7
datadir=/databak/data/IoT-prod-innerstatisticserv/mysql5.7/data
初始化数据库
 
/databak/data/IoT-prod-innerstatisticserv/mysql5.7/bin/mysql_install_db --defaults-file=/databak/data/IoT-prod-innerstatisticserv/mysql5.7/my.cnf --basedir=/databak/data/IoT-prod-innerstatisticserv/mysql5.7 --datadir=/databak/data/IoT-prod-innerstatisticserv/mysql5.7/data --user=mysql
 提示:2020-08-26T02:27:38.726166Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

执行mysqld --initialize 即可

启动服务

cd /databak/data/IoT-prod-innerstatisticserv/mysql5.7/support-files/
./mysql.server start
2、首先要确定需要拷贝的data目录在哪里

其实是拷贝mysql的数据存放路径,具体如下

3、需要拷贝的文件包括:数据库文件(例如上图所示的innerstatistic、mysql等数据库)和  ibdata1  (这个必须拷贝)
4、停掉mysql服务,将拷贝的文件复制到目标数据库的data目录中,切记拷贝过来后 需要删除目标数据库的data目录中原来的ib_logfile0、ib_logfile1
5.复制好后,启动mysql服务,用数据库连接工具连接数据库即可看到导进来的数据库

利用拷贝data目录的方式进行迁移mysql5.7数据库_第1张图片

你可能感兴趣的:(mysql,linux,centos)