【问题标题】:jdbc connection with remote mysql与远程mysql的jdbc连接
【发布时间】:2018-05-08 16:57:30
【问题描述】:

我无法找到解决方案。我的代码:

package simple;

import java.sql.*;

public class Dbconnect {

    public static Connection Dbconnector() {

        Connection con=null;
        try {
            con=DriverManager.getConnection("jdbc:mysql://www.merinasoftbd.com:2083/merinaso_inventory management?useSSL=false", "merinaso_inventorymanagement", "inventorymanagement");

            System.out.println("Successfully  connected");

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return con;
    }
}

错误:

com.mysql.cj.jdbc.exceptions.PacketTooBigException:查询数据包太大(5,526,600 > 65,535)。您可以通过设置“max_allowed_pa​​cket”变量在服务器上更改此值。 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:107) 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) 在 com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:444) 在 com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) 在 java.sql.DriverManager.getConnection(未知来源) 在 java.sql.DriverManager.getConnection(未知来源) 在 simple.Dbconnect.Dbconnector(Dbconnect.java:18) 在 simple.mainclass.main(mainclass.java:13)

【问题讨论】:

  • 编辑您的配置文件 (.cnf) 或服务器上的 .ini 文件。设置 max_allowed_pa​​cket = 512M 并重启你的服务器。
  • 请发布完整的异常堆栈跟踪。
  • fullexceptionstacktrace:::
  • 我的服务器不允许更改 max_allowed_pa​​cket 大小。说:要改变这一点,你必须拥有超级特权

标签: java mysql jdbc


【解决方案1】:

您的错误消息表明您的 JDBC 客户端向 MySQL 服务器发送的数据包大于服务器的最大数据包大小。您可以按照此 stackoverflow 问题的答案中的说明来增加最大数据包大小:

How to change max_allowed_packet size

但是驱动程序需要发送一个 5 MB 的数据包来创建连接似乎有点奇怪。但我通常使用更大的 MySQL 数据包大小,所以我不会注意到。请注意,MySQL 数据包大小与 IP 数据包大小无关。

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 2013-08-14
    • 2012-04-15
    • 2019-03-02
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    相关资源
    最近更新 更多