2

我正在尝试通过 Java 程序连接到外部 mySQL DB。当我尝试连接时,我得到以下异常:

Exception in thread "main" com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:605)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Main.main(Main.java:48)

这仅适用于此外部服务器。我能够连接到我设置的本地服务器,根本没有这个问题。

我对此进行了一些研究,它谈到了通过 /etc/my.cnf 文件增加我的客户端 max_allowed_pa​​cket 大小。我试图做到这一点没有任何成功。因为我什至找不到 .cnf 文件,所以有人可以指导我。这甚至是基于 Java 的连接的正确方法吗?

提前致谢。

4

1 回答 1

3

在服务器上,您必须更改您的 mysql 配置文件。您将需要根据您的操作系统找到它。见https://dev.mysql.com/doc/refman/5.6/en/option-files.html

您不需要在客户端做任何事情来设置它。只需发送大量数据。

于 2012-07-11T15:22:39.567 回答