(MySQL)从本地导入1000w的记录表

发布时间 2023-07-08 11:01:42作者: 杨百顺

ERROR 1148 (42000): The used command is not allowed with this MySQL version

SHOW VARIABLES LIKE 'local_infile';
  1. 修改/etc/my.ini
loose-local-infile = 1
  1. 使用set global
mysql -u root -p 
Enter password: [输入密码]
SET GLOBAL local_infile = 1;

配置完毕之后,重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息(Windows系统--win+D--services.msc),找到MySQL,手动重启。

  1. 使用DataGrip导入
    表结构tb_sku
CREATE TABLE `tb_sku` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
  `sn` varchar(100) NOT NULL COMMENT '商品条码',
  `name` varchar(200) NOT NULL COMMENT 'SKU名称',
  `price` int(20) NOT NULL COMMENT '价格(分)',
  `num` int(10) NOT NULL COMMENT '库存数量',
  `alert_num` int(11) DEFAULT NULL COMMENT '库存预警数量',
  `image` varchar(200) DEFAULT NULL COMMENT '商品图片',
  `images` varchar(2000) DEFAULT NULL COMMENT '商品图片列表',
  `weight` int(11) DEFAULT NULL COMMENT '重量(克)',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `category_name` varchar(200) DEFAULT NULL COMMENT '类目名称',
  `brand_name` varchar(100) DEFAULT NULL COMMENT '品牌名称',
  `spec` varchar(200) DEFAULT NULL COMMENT '规格',
  `sale_num` int(11) DEFAULT '0' COMMENT '销量',
  `comment_num` int(11) DEFAULT '0' COMMENT '评论数',
  `status` char(1) DEFAULT '1' COMMENT '商品状态 1-正常,2-下架,3-删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';

DataGrip不行,使用命令行执行指令:

mysql --local-infile=1 -u root -p
Enter password: [输入密码]
use itcast;
load data local infile 'F:/work/SQLData/tb_sku1.sql' into table `tb_sku` fields terminated by ',' lines terminated by '\n';

成功
mysql> load data local infile 'F:/work/SQLData/tb_sku1.sql' into table tb_sku fields terminated by ',' lines terminated by '\n';
Query OK, 0 rows affected, 65535 warnings (21.70 sec)
Records: 2000000 Deleted: 0 Skipped: 2000000 Warnings: 2001610

注意 :
由于1000w的数据量较大 , 如果直接加载1000w , 会非常耗费CPU及内存 ; 已经拆分为5个部分 , 每一个部分为200w数据 , load 5次即可 ;


ERROR 1148 (42000): The used command is not allowed with this MySQL version
转载Mysql load data infile用法(万级数据导入,在几秒之内)
MySQL中LOAD DATA INFILE