今天遇到的关于mysql的max_allowed_packet的问题
今天,运维组的同学来找我,说是备份池的文件描述没有显示出来,而且是从20号开始就不能显示,之前的文件描述就能显示,而且20号他们上传备份的数据确实是传过来的。但是是在web界面文件描述显示不出来。
先说下文件描述的意思:就是公司的同时使用一个客户端,将他们认为重要的数据一个一个的上传过来(rsync)的方式,然后在中控机上为每个文件生成一个md5的值,最终保存到数据库中的某个字段中(md5),最终进行显示web界面,显示如此:

T2X$D9J%F.png)
T2X$D9J%F.png)
但就是这个项目特别久远,没有使用任何的php框架,所有的代码都是函数式的编程,要是一个文件一个文件的查看下去的话,是会要死人的。
于是,和项目组的另一位老同事讨论这个问题,最后分析的结果是:
(1).可能是在各个节点再往中控机上上传这个md5的文件的时候,没有上传上去,导致获得不到最终的md5文件
(2).查找所有文件中包含md5和insert update之类字样的文件,一个文件一个文件的排查,最终定位到某个文件的一个SQL:
update mission set `md5` = LOAD_FILE('".$target."') where `id` = ".$id
上面的这个sql语句就是在更改md5文件描述符,很明显在20号之后的md5文件并没读取出来。
那为啥没有读取出来呢?
之前的程序什么的都没有进行更改,那只能去查LOAD_FILE()这个mysql函数的用法了
下面是LOAD_FILE()的官方用法:
Reads the file and returns the file contents as a string. To use this function, the file must be located on the server host, you must specify the full path name to the file, and you must have the FILE privilege. The file must be readable by all and its size less than max_allowed_packet bytes. If the secure_file_priv system variable is set to a nonempty directory name, the file to be loaded must be located in that directory. If the file does not exist or cannot be read because one of the preceding conditions is not satisfied, the function returns NULL
其大意就是说:上传的这个文件是需要可读的,而且这个文件的大小必须小于mysql Server的max_allowed_packet的值的。
最终,问题找到了,可能就是max_allowed_packet这个值过小,需要将其改大。
于是,上到mysql的终端:
进行设置:
show variables like "%max_allowed%";
set global max_allowed_packet = 2*1024*1024*10;
注意:必须是退出后,才能生效。
今天遇到的关于mysql的max_allowed_packet的问题的更多相关文章
- Linux中MySQL数据库max_allowed_packet的调整
在MySQL数据库里某表有一个blob字段,当上传文件超过1M的时候出现下面的错误: PreparedStatementCallback; SQL [insert into uos.docfile(r ...
- mysql 设置max_allowed_packet 大小的办法
show VARIABLES like '%max_allowed_packet%'; 第一句是查询 max_allowed_packet 的大小,第二句是重新设定 max_allowe ...
- mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
修改方法 1.修改配置文件 可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改. 代码如下: max_allowed_packe ...
- mysql里max_allowed_packet的作用
MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: 代码如下: show VAR ...
- mysql 中 max_allowed_packet 查询和修改
mysql 会根据配置文件限制 server 接收的数据包的大小. 有时候大的插入和更新会被 max_allowed_packet 参数限制,报如下错误: Packet > ). You can ...
- MySQL修改max_allowed_packet
因mysql从库报错Last_IO_Error: Got a packet bigger than 'max_allowed_packet' bytes mysql> show slave st ...
- 修改windows下mysql的max_allowed_packet的值
执行sql报错:Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is to ...
- mysql修改max_allowed_packet数据包最大值
在windows环境下!!!! 1.找到my.inc文件,不是你的安装目录路径,是C:\ProgramData\MySQL\MySQL Server 5.7这个路径,注意 ProgramData 文件 ...
- mysql 修改max_allowed_packet
-- 查询max_allowed_packetshow VARIABLES like '%max_allowed_packet%'; 修改 my.ini 或 my.cnf [mysqld] max_a ...
随机推荐
- C#与XML Schema的问题
http://bbs.csdn.net/topics/50493564 weileily: 用XmlSchema.Read方法读取了一个xsd文件,请问如何遍历检索器中的ComplexType与Sim ...
- windows dir改成ls
习惯了linux下的ls命令,windows的dir用的很不习惯,又不想装cygwin, bash,就想把dir重命名为ls,发现dos下有个命令doskey可以完成该功能.在命令提示符下敲: > ...
- maven web project打包为war包,目录结构的变化
一个maven web project工程目录: 资源管理器中的目录层级如下: 导出为war包之后的目录层级为: 我们会发现,其实并没有如下的这些目录层级: 所以这两个目录层级只是IDE为我们添加的, ...
- dede织梦后台如何修改?如何增加删除菜单?(
织梦后台的模板存放在dede/templets下面, 登陆首页模板login.htm, 进入首页模板index_body.htm, 左侧菜单模板index_menu2.htm. 修改左侧菜单dede/ ...
- iOS红马甲项目Bug总结(3)
这里是一些小总结 1.使用图片缓存之后,新添加的图像一直不能显示 2.项目打包通过appliction loader上传成功了,可是itunes 上面的构建版本项,一直没显示出来 3.界面加载之后,t ...
- 外观模式(Facade Pattern)
一.引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ...
- QSqlTableModel 使用方法(转)
Qt QSqlTableModel 使用心得 连接数据库 执行sql查询,条件显示,排序 获取记录数,列数以及记录内容,字段内容 新增,修改,删除,恢复 其它 1---------------连接数据 ...
- docker2
https://github.com/docker/distribution daocloud 数人云 时速云 http://jpetazzo.github.io/2014/06/23/docker- ...
- MapReduce的输入输出
mapper和reducer的划分 mapper的数量等于输入文件被划分成的分块数,这取决于输入文件的大小以及文件块的大小.一个map操作只处理一个输入分片.运行作业的客户端通过调用getSplits ...
- 各种数据分析图demo
极地蛛网图:http://www.hcharts.cn/demo/index.php?p=61 各种数据分析图demo: http://www.hcharts.cn/demo/index.php?p= ...