当前位置: 首页>数据库>正文

2024-03-18

Windows10下Navicat导入数据导mysql8.0失败处理

1.通过navicat导入一张大小约70M的表,执行过程会报错,报错信息如下:

[SQL] Query point start

[ERR] 1153 - Got a packet bigger than 'max_allowed_packet' bytes


2024-03-18,第1张

2.发现报错的参数是max_allowed_packet,一查相关资料,原来是导入的数据文件比默认设置的参数的允许包文件大小要大,导致导入失败。

3.修改的参数的方法有两个:

a.修改配置文件

首先找出my.ini或者my.cnf,由于我本地的mysql是通过安装包安装的,不过不好找,先找到安装路径;登录mysql查询一下SQL:

select @@basedir;


2024-03-18,第2张

出来的路径是:C:\Program Files\MySQL\MySQL Server 8.0\

在该路径下找了大半天却没找到对应的配置文件

最后无意中居然在隐藏的文件夹中找到,放在该路径下C:\ProgramData\MySQL\MySQL Server 8.0(后来发现原来my.ini配置文件没有设置basedir,设置datadir为datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data ,结果导致配置文件放在数据目录下)

增加需要修改的参数,并保存文件

max_allowed_packet=200M

重启数据库即可生效

b.直接修改参数max_allowed_packet,调大到需要的大小值(这种修改方法会在重启数据库后失效)

参数原本的值是67108864

2024-03-18,第3张

修改参数大小


2024-03-18,第4张

查询发现没有修改,还是原来的值


2024-03-18,第3张

再查下全局,原来改在全局了

show global VARIABLES like'max_allowed_packet';

2024-03-18,第6张

关掉原来查询的界面,重新执行导入SQL文件,成功导入

最后,在处理好问题,再查下这个参数的作用;

max_allowed_packet参数指的是MySQL服务端或者客户端接收一次传送数据包的最大大小,MySQL服务端和客户端上都有这个限制。值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败,为了数据完整性,需要考虑到事务因素。

由于这个大小限制,就造成导入数据失败。


https://www.xamrdz.com/database/6gs1850454.html

相关文章: