java - 增加与 mySQL DB 的 Java 连接的客户端数据包大小

标签 java mysql client size packet

我正在尝试通过 Java 程序连接到外部 mySQL 数据库。当我尝试连接时,出现以下异常:

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 的连接来说,这是否是正确的方法?

提前致谢。

最佳答案

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

您不需要在客户端执行任何操作来设置此值。只需发送大量数据即可。

关于java - 增加与 mySQL DB 的 Java 连接的客户端数据包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11435292/

相关文章:

c# - C# 中的 java.lang.Long

java - Android Studio 预览来自 google map API 的 map 不会显示 map

mysql - 删除一个表中有语法错误的相同数据(mysql)

c# - 通过 WCF 提供整个库的功能

java - 从匿名内部类中突破方法

java - 如何通过makePostRequest()中的ajax调用发送文件并通过 Controller 中的请求参数获取它

php - 使用变体 PHP MySql 将重复记录复制到同一个表中

MYSQL 选择 COLUMN(CONDITION) WHERE 条件

Java - 使用 Apache httpclient 的 HTTPS 基本身份验证

java - 连接到 Java 服务器时 Android 客户端崩溃