从navicat中导入sql文件过大:Got a packet bigger than 'max_allowed_packet' bytes
失败背景:刚才通过navicat向本地mysql数据库中导入sql文件。第一个sql文件(多个表)大小为967M,导入成功;
第二个sql(单个表)大小为50.1M,导入失败。
1.在navicat中按F6进入mysql的命令界面
输入命令: mysql>show VARIABLES like '%max_allowed_packet%';
显示:
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 4194304 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set
(1)显示:主最大允许包(max_allowed_packet)等于4M,从最大允许包(slave_max_allowed_packet)等于1G;
(2)至此,发现:第一个sql是967M,此sql文件包含若干个表。大小在主从之间,导入成功。但是第二个sql为50.1M,此sql只包含一个表,导入失败,提示:Got a packet bigger than 'max_allowed_packet' bytes
(3)猜想:
①这个max_allowed_packet所指的packet限制的是应该单个表而不是整个sql文件的大小,因为导入sql时是一张一张表得连续insert,所以限制的是一张表的大小,显然第二个sql文件是单个表大于4M;
②另外,不是还有个slave_max_allowed_packet,它的大小1G是大于两个sql文件的,为什么第二个sql还是失败了,这个应该是限制sql文件大小的,而第一次导入的sql中的都是若干个小表,第二次导入的sql是一张大的日志表。
2.现在,把max_allowed_packet设置大于50.1M试试,我设置为160M,输入命令
mysql>set global max_allowed_packet = 1024*1024*160;
Query OK, 0 rows affected;
再次导入这个50.1M的sql,成功!没报错!
证明猜想①是对的,max_allowed_packet就是来限制单个表的大小,而不是sql文件大小。
max_allowed_packet 针对的是一个事务中的一行记录大小,当一行记录超过了限制的大小,将会报错。sql文件中每次insert完进同一张表的所有数据被称为一个数据包(packet),max_allowed_packet就是来限制这个的大小的阈值,大于这个值,mysql的I/O连接会关闭,就会报这个错。
从navicat中导入sql文件过大:Got a packet bigger than 'max_allowed_packet' bytes的更多相关文章
- mysql导入出现MySQL Error 1153 - Got a packet bigger than 'max_allowed_packet' bytes
解决办法: 就搞定了.
- 数据库执行sql报错Got a packet bigger than 'max_allowed_packet' bytes及重启mysql
准备在mysql上使用数据库A,但mysql5经过重装后,上面的数据库已丢失,只得通过之前备份的A.sql重新生成数据库A. 1.执行sql报错 在执行A.sql的过程中,出现如下错误:Got a p ...
- 在Centos中导入sql文件的方法
在Centos中导入sql文件的方法 利用mysql -u root -p进入mysql数据库 对于文件的导入,在Centos下里面的是首先要新建一个和文件相同名字的数据库.例如:mysql>c ...
- linux中导入sql文件
在linux中导入sql文件的方法分享(使用命令行转移mysql数据库) 因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述. 上传sql ...
- mysql数据库导入sql文件时提示“Error Code: 1153 - Got a packet bigger than 'max_allowed_packet' bytes”解决办法
向mysql数据库中导入sql文件时,如果文件过大(几百M),会提示"Error Code: 1153 - Got a packet bigger than 'max_allowed_pac ...
- Navicat 导入数据报错 --- 1153 - Got a packet bigger than 'max_allowed_packet' bytes
在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes 查了 ...
- 数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题 2个解决方法: 1.临时修改:mysql>set global max_a ...
- 数据导入报错 Got a packet bigger than‘max_allowed_packet’bytes
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题 2个解决方法: 1.临时修改:mysql>set global max_a ...
- 向mysql workbench中导入.sql文件
mysql workbench用的不多,前段时间装了一下,然后用了一下,感觉操作比dbdesigner4要更人性化一点.其中二个方面做了改进,让我觉得很爽. 第一,就是端口可以修改了,以前就是定死33 ...
随机推荐
- Java语法 [开发环境搭建]
自行百度. https://www.baidu.com 自行必应 https://cn.bing.com
- Mybaits
1.Mybatis全注解形式 (在注解上不能直接使用动态Sql,必须要在前后面加上<script>SQL</script>标签,否则会报错): @Select("& ...
- Codeforces Round #510 (Div. 2)
Codeforces Round #510 (Div. 2) https://codeforces.com/contest/1042 A 二分 #include<iostream> usi ...
- [leetcode]70. Climbing Stairs爬楼梯
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- $.fn.extend() 问:我来这个世上到底是干嘛的?
好好好 乖 本宝宝来告诉你 你来是干嘛的啊~ 话不多说 直接上码 当然如下代码是在jquery环境下运行的 HTML JS 完事~~~ 当你点击div元素的时候 你会发现弹出来“我被单击了”这句 ...
- mencached
是一个免费开源的,分布式内存对象缓存系统数据库. 是一个非关系型数据库形式,属于NOSQL NOT OLNY SQL ,不仅仅是关系数据库 它属于K V 存储 KEY VALUE 相对应的存储 KEY ...
- docker 镜像存放路径的修改
可以通过在启动时使用--graph参数来指定存储路径. 或者使用systemd来管理服务, 就在/lib/systemd/system/docker.service中修改这一行: 1.ExecStar ...
- jquery 表单校验
<link type="text/css" href="<%=basepath%>css/form/validate.css" rel=&qu ...
- python抢火车票 短信通知
# -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback ...
- 2019.02.19 bzoj2655: calc(生成函数+拉格朗日插值)
传送门 题意简述:问有多少数列满足如下条件: 所有数在[1,A][1,A][1,A]之间. 没有相同的数 数列长度为nnn 一个数列的贡献是所有数之积,问所有满足条件的数列的贡献之和. A≤1e9,n ...