使用load指令进行插入操作
登录mysql时加上--local_infile
否则在导入时会报:
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
检查是否开启local_infile
如果没有开启会报:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
使用该指令查看(默认是0,关闭状态):
select @@local_infile;
使用该指令进行设置
setglobal
local_infile = 1; #要加global,因为他是全局变量,不加要报错
在导入数据前,先选好库,建好对应的表
导入数据:
load data local infile ‘路径名’ into table `表名` fields terminated by ‘,’ lines terminated by ‘\n’;
这个’,'是可以变化的,但是要和表中字段值之间的分隔符一致才行。
例如:我的表名是tb_sku,tb_sku1.sql数据上传放置在linux服务器的/root/sql/目录下load data local infile '/root/sql/tb_sku1.sql' into table `tb_sku` fields terminated by ',' lines terminated by '\n';
总结:
- 登录时加上 --local_infile
- 开启 local_infile
- 创建好对应的库和表
- 将要导入的sql表,找好存放位置,导入数据
1000w条数据源
表结构,库自己任选
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='商品表';