MySql 做主主双活,千万级数据导入

本文讲述了在搭建双主复制后,使用Navicat导入大量数据时遇到的丢失问题,作者推荐通过命令行方式,包括同步表结构、导出数据文件到指定路径、并解决`secure_file_priv`设置导致的问题,强调根据业务需求选择合适的迁移方法。
摘要由CSDN通过智能技术生成

搭建完双主复制后,用navicat 导数据时发现超过150万的数据会出现导入丢失的情况。

经过分析,采用命令行方式导入

1、同步表结构

先建立备份数据库的表结构同源库一致。

2、导出表数据文件

2.1 首先确认数据文件路径

mysql> show variables like '%secure%';

如图所示,框住的便是导出的数据文件路径。

2.2执行导出数据脚本

mysql> select * into outfile '/var/lib/mysql-files/testdata.txt' fields terminated by ',' from tbab;

一千多万的数据不到7s的时间(跟表的字段数量有关系)

3.导入表数据

导入之前先检查目标表的表结构是否已经建好。(PS:最好是先把表的索引和外键先去除,不然会耗费时间)

mysql> load data infile '/var/lib/mysql-files/testdata.txt' into table tbab fields terminated by ',';

4.有可能出现的问题解决

一般会出现: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

解决办法:

在my.ini 或 my.cnf 文件对secure_file_priv的值进行配置:

secure_file_priv为null 表示不允许导入导出 (5.7后为默认值)

secure_file_priv='指定文件路径',表示mysql的导入导出只能发生在指定的路径

secure_file_priv='' ,表示没有任何限制

修改完配置后对MySql进行重新启动生效。

结束语:数据迁移有很多种方式,适合业务需要的才是最好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值