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

mysql Packet for query is too large异常解决

关键字:
1 星2 星3 星4 星5 星 (4 次投票, 评分: 3.50, 总分: 5)
Loading ... Loading ...
baidu_share

最近新搭建了一个mysql,运行查询语句语句时报出错误:’com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1550606 > 1048576). You can change this value on the server by setting the max_allowed_packet variable.’

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1550606 > 1048576). You can change this value on the server by setting the max_allowed_
packet' variable.
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3915)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2598)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2825)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2156)
        at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1379)
        at com.hq.sql.Mysql.insert(Mysql.java:152)
        at com.hq.sql.SqlExcution.query2Insert(SqlExcution.java:90)
        at com.hq.schedule.Schedule.main(Schedule.java:27)

产生的主要原因就是,查询返回的数据量比较大,而允许返回的”max_allowed_packet”太小,导致以上错误。

在linux系统下,找到/etc/my.cnf文件,修改max_allowed_packet=50M,重启mysql,问题解决。

在linux登陆mysql,运行命令 show tables;出现错误:

mysql> show tables;
Ignoring query to other database

经查,原来是由于我登陆的时候,用-root,没有用-uroot。

/usr/bin/mysql -root -ppwd

改为/usr/bin/mysql -uroot -ppwd问题解决。

在登陆mysql,在命令行执行sql文件的命令为:

source /home/sql.sql

本文固定链接: http://www.chepoo.com/mysql-packet-for-query-is-too-large-error-resolved.html | IT技术精华网

mysql Packet for query is too large异常解决:等您坐沙发呢!

发表评论