首页 > 数据库 >linux环境千万数据导入mysql遭遇问题

linux环境千万数据导入mysql遭遇问题

时间:2023-02-12 16:37:12浏览次数:51  
标签:COMMENT varchar DEFAULT linux int 导入 mysql NULL local

看黑马mysql视频有数据是一千万条数据,分批使用 load file 方式导入数据库表的时候出现了导入失败问题

表结构

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='商品表';

插入文件内容:

 

 一千万条分5批

 

 执行指令:

 

load data local infile '/root/sql/tb_sku1.sql' into table `tb_sku` fields terminated by ',' lines terminated by '\n';

注意 :
由于1000w的数据量较大 , 如果直接加载1000w , 会非常耗费CPU及内存 ;

已经拆分为5个部分 , 每一个部分为200w数据 , load 5次即可 ;

 

创建好表。开始导入

 

 报错了!!!

mysql8在load千万条数据时报ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides

首先执行如下命令查看local_infile值是否打开:
SHOW GLOBAL VARIABLES LIKE 'local_infile';

 

在MySQL8.0版本这个值是默认OFF的(5.7版本是默认打开的),需要我们执行命令将其打开:

set global local_infile=1;

接下来我们再来load一次: 又报错了

 

 解决新错误的方法:先quit出MySQL的控制台,再使用如下命令登入:
mysql -u root -p --local-infile

 

导入成功:

 

 

参考:

https://blog.csdn.net/weixin_42331530/article/details/126900364?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126900364-blog-124516049.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126900364-blog-124516049.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=2

 

标签:COMMENT,varchar,DEFAULT,linux,int,导入,mysql,NULL,local
From: https://www.cnblogs.com/Isaiah2018/p/17114003.html

相关文章

  • Linux学习-day9
    第六章存储结构与管理硬盘6.1一切从“/”开始Linux系统中一切都是文件​Linux系统中的一切文件都是从“根”目录(/)开始的,并按照文件系统层次标准(FHS)采用倒树状结构来存放......
  • maven的java工程取mysql数据库数据
    maven的java工程取mysql数据库数据maven的java工程取mysql数据库数据创建User实体类: publicclassUser{privateintid;privateStringNAME;@Ov......
  • Linux基础命令-ls显示目录和文件的属性信息
    前言        ls命令是常需要用到的linux命令之一,熟悉其参数的搭配有利于操作上的便利,ls命令可以显示目录和文件的属性,一起来看下展开的属性有哪些。一、ls命令介绍......
  • Linux基础命令-cd切换目录
    前言        cd命令是一个频繁使用到的命令,熟悉其参数的搭配有利于操作上的便利,这个命令用于切换目录,一起了解看看。一、cd命令介绍    cd命令来自于英文词......
  • Linux基础命令-alias设置别名
    前言在前文当中也有多次提到alias这个命令,如果说频繁使用一个很长的命令,就可以把它定义一个别名,往往几十个字符的命令会变成几个字母而已,大大提高了工作效率。一、alias命令......
  • MySQL——优化(二):索引创建和失效
    一、创建索引的原则1、建议创建索引的场景where语句的查询条件select语句,对于某些字段经常作为where语句的查询条件;Update/delete语句的where条件频繁使用时......
  • 在macos系统终端中使用mysql
    1.启动/usr/local/mysql/bin/mysql-uroot-p2.配置mysql环境变量使用如下命令:sudoln-s/usr/local/mysql/bin/mysql/usr/local/bin而后可通过以下命令运行my......
  • Golang:交叉编译到Linux、macOS、windows并运行
    Golang可以直接编译成不同平台的可执行文件,并且直接运行,很方便第三方使用者部署运行项目结构$tree.├──Makefile└──src└──hello.go项目很简单,一个H......
  • naabu linux 下使用 -centos
    版本naabu端口扫描工具在linux运行出现错误解决方法yuminstall-ylibpcap-devel或aptinstall-ylibpcap-dev查找上述安装的文件位置locatelibpcap(......
  • Linux netstat -anlp 命令查看本机监听的端口号
    #sudonetstat-anlpActiveInternetconnections(serversandestablished)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/......