今天,运维组的同学来找我,说是备份池的文件描述没有显示出来,而且是从20号开始就不能显示,之前的文件描述就能显示,而且20号他们上传备份的数据确实是传过来的。但是是在web界面文件描述显示不出来。

  先说下文件描述的意思:就是公司的同时使用一个客户端,将他们认为重要的数据一个一个的上传过来(rsync)的方式,然后在中控机上为每个文件生成一个md5的值,最终保存到数据库中的某个字段中(md5),最终进行显示web界面,显示如此:

  但就是这个项目特别久远,没有使用任何的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的问题的更多相关文章

  1. Linux中MySQL数据库max_allowed_packet的调整

    在MySQL数据库里某表有一个blob字段,当上传文件超过1M的时候出现下面的错误: PreparedStatementCallback; SQL [insert into uos.docfile(r ...

  2. mysql 设置max_allowed_packet 大小的办法

        show VARIABLES like '%max_allowed_packet%'; 第一句是查询  max_allowed_packet  的大小,第二句是重新设定  max_allowe ...

  3. mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)

    修改方法 1.修改配置文件 可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改. 代码如下: max_allowed_packe ...

  4. mysql里max_allowed_packet的作用

    MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: 代码如下: show VAR ...

  5. mysql 中 max_allowed_packet 查询和修改

    mysql 会根据配置文件限制 server 接收的数据包的大小. 有时候大的插入和更新会被 max_allowed_packet 参数限制,报如下错误: Packet > ). You can ...

  6. MySQL修改max_allowed_packet

    因mysql从库报错Last_IO_Error: Got a packet bigger than 'max_allowed_packet' bytes mysql> show slave st ...

  7. 修改windows下mysql的max_allowed_packet的值

    执行sql报错:Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is to ...

  8. mysql修改max_allowed_packet数据包最大值

    在windows环境下!!!! 1.找到my.inc文件,不是你的安装目录路径,是C:\ProgramData\MySQL\MySQL Server 5.7这个路径,注意 ProgramData 文件 ...

  9. mysql 修改max_allowed_packet

    -- 查询max_allowed_packetshow VARIABLES like '%max_allowed_packet%'; 修改 my.ini 或 my.cnf [mysqld] max_a ...

随机推荐

  1. JQuery Jsonp 跨域

    需求:两个不同域的网站想利用ajax交互数据 客户端:ajax的dataType参数设置成jsonp,然后设置一个回调函数(jsonCallBack) 服务器端:返回callfunName([{a:& ...

  2. 常用加实用的Linux命令

    命令是计算机执行任务的指令.可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息等. 下面是各种基本的命令可供参考. 1.Ls - List ls会列举出当前工 ...

  3. Kafka实战系列--Kafka的安装/配置

    *) 安装和测试 cd /path/to/server#) 下载kafka二进制包wget http://apache.fayea.com/apache-mirror/kafka/0.8.1.1/ka ...

  4. 在ubuntu下安装QQ

    (参考链接   :http://jingyan.baidu.com/album/47a29f24577776c01423991a.html?picindex=3) 一 .安装  wine 1.下载一个 ...

  5. C中变量名通过宏定义转换成char*类型字符串

    #include <iostream> #include <stdlib.h> #define name_to_str(name)(#name) int main() { in ...

  6. js中的this指针(四)

    当一个函数前面加上 new 操作符来调用,此时 this 会被绑定到新生成的对象上. 这既是所谓的构造函数调用模式.

  7. POJ-2726-Holiday Hotel

    Holiday Hotel   Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8302   Accepted: 3249 D ...

  8. 【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

    一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6 ...

  9. UIButton的使用

    使用UIButton时需要注意的是: 1.UIButton的创建有专门的类方法(buttonWithType:,UILabel没有): 2.UIButton常用的属性包括:frame.titile.t ...

  10. MSSQL 判断一个时间段是否在另一个时间段内!

    MSSQL 判断一个时间段是否在另一个时间段内! 1 CREATE TABLE #B ( MeetingRoom int, BeginTime datetime, EndTime datetime ) ...