1.原因 程序的sql语句比较长.max_allowed_packet默认是1024.于是就报错了.一开始手动改 global max_allowed_packet ,改完后.莫名奇妙被还原.后来改配置文件还是不起作用(其实配置文件一开始就没生效,后来发现的).好几次了.恼火的不行.于是昨天百度之.看了好几个都感觉不靠谱.其中有个说被黑客攻击了.建议开启 general_log 日志查看一下记录.打算试试. 2.现行 日志昨天开启.今天上午查看.看着看着就发现不对了.果不其然被黑客入侵了. 可能…
近期业务准备上线一个新功能,灌入数据之后突然发现主从同步停止,报错如下: Error 'Duplicate entry '66310984-2014-04-18 00:00:00--122815.sh' for key 'PRIMARY'' on query. Default database: 'bill'. Query: 'INSERT INTOBOND3311(OBJECTID,BONDID,BONDNAME,DECLAREDATE,F001D,F002D,F003N,F004N,F005…
因为被别人利用mysql攻击,所以想在这里帮助大家提高一下自身mysql的安全.避免成为别人的肉鸡. show global variables like '%secure%'; 如果是这样则黑客可以利用MySQL在系统注入文件. 在linux下这个是不给设置为null的,否则数据库启动不了. 我在这里直接设置成/dev/null 这样即使黑客要注入文件耶没有用. 编辑my.cnf 在[mysqld]下面加上这么一个配置选项:secure_file_priv = /dev/null 然后重启my…
近日遇到一个比较奇怪的deadlock错误, 错误详情: Deadlock found when trying to get lock; try restarting transaction; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException... 跟踪代码后最终定位到一段业务逻辑: delete from A where no = $no; insert into A(no, value) value…
在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”. 这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M) 可以通过如下语句在数据库中查询其值: show VARIABLES like '%max_allowed_packet%'; 修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添…
背景: 测试环境1台centOS机器,最近一段频繁报“ Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1354 > 1024). You can change this value on the server by setting the max_allowed_packet' variable ”, 记录解决问题的思路,最终找到问题根源:黑客入侵,总结经验. 思路: 查看max_a…
看错误信息,发现1048576个字节,正好是1*1024*1024byte,也就是1Mb. 这正是mysql默认的max_allowed_packet值. 使用sql语句: show VARIABLES like '%max_allowed_packet%' 可以查询到相应的max_allowed_packet值 需要在/etc/my.cnf配置文件中mysqld字段下进行设置: max_allowed_packet = 20M 重启mysql服务: service mysqld restart…
MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: 代码如下: show VARIABLES like '%max_allowed_packet%'; 显示的结果为: 代码如下: +--------------------+---------+| Variable_name      | Value   |+--------------------+---------+| ma…
今天在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes 查了一下,原来是MySQL默认读取执行的SQL文件最大为16M,我这个SQL文件260M,所以执行不过去 解决方法: 在MySQL安装目录下找到文件my.ini,搜索[mysqld],在其下面添加一句话 max_allowed_packet=400M 重启MySQL服务 这个大小按自己的SQL文件大…
原因是max_allowed_packet 值设置过小. 网上粘贴一段定义: max_allowed_packet:指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小这个是定义mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小定义过大,比如max_allowed_packet=8092,有可能服务器端太忙,来不及接收,或者网络太差,会容易造成丢包定义过小,会因为客户端可能无法快速接收服务器端发过来的包,一般推荐是4096 网上说有两种方法: 方法一,直接修改my.…