验证数据库字段过大报错问题(报错 MySQL server has gone away)

一、环境 mysql 5.7.36

导入数据报错:ERROR 2006 (HY000) at line 1: MySQL server has gone away
在这里插入图片描述

二、验证

1、创建测试数据
1)创建表结构
CREATE TABLE `cs_log` (
  `branch_id` bigint(20) NOT NULL ,
  `xid` varchar(100) DEFAULT NULL,
  `context` varchar(128)  DEFAULT NULL,
  `rollback_info` longblob NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2)导入数据

1.开启参数需要重启数据库

secure_file_priv=/tmp/cs

2.创建目录并授权

mkdir /tmp/cs

chmod 777  /tmp/cs

3.上传测试数据
百度网盘下载data1.txt 文件
链接:data1.txt
提取码:zfqz

移动测试文件到/tmp/cs/data1.txt 下面
mv  data1.txt  /tmp/cs/data1.txt

4.导入数据

LOAD DATA INFILE '/tmp/cs/data1.txt'
INTO TABLE cs_log    
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
2、错误复现
1)修改客户端连接
set global max_allowed_packet = 1024;  
2)导入数据

百度网盘下载1.sql文件
链接:1.sql 文件
提取码:aied
在这里插入图片描述

三、解决方式

1、源端执行

1)源端开启参数需要重启数据库(写配置文件里面)

secure_file_priv=/tmp/cs		#mysql数据

2)源端创建目录并授权

mkdir /tmp/cs

chmod 777  /tmp/cs

3)源端导出数据

SELECT *
INTO OUTFILE '/tmp/cs/data1.txt' #/tmp/cs/data1.txt 数据文件位置
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM cs_log;					 #cs_log 要导出数据的表名
2、目标端执行

1)源端开启参数需要重启数据库(写配置文件里面)

secure_file_priv=/tmp/cs		#mysql数据

2)目标端创建目录

mkdir /tmp/cs

chmod 777  /tmp/cs

3)目标端数据导入到目标端

scp 源端/tmp/cs/data1.txt    /tmp/cs/

4)数据库执行导入命令

LOAD DATA INFILE '/tmp/cs/data1.txt'  #/tmp/cs/data1.txt 数据文件位置
INTO TABLE cs_log    				  #cs_log 要导入数据的表名
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值