0

我在 linux 机器上托管了 MYSQL 服务器。我正在尝试从我的 Java 应用程序访问服务器。在此过程中,我遇到了一条错误消息,该错误消息在指定的分辨率下似乎很常见。我在 Mysql 服务器上尝试了相同的方法,即 my.cnf 并更新了 max_allowed_pa​​cket 在此处输入图像描述 并执行了重新启动。

package com.test.ssh;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;


public class ConnectJDBC {

public static void main(String[] args) {
    
    
    String url = "jdbc:mysql://10.20.30.40:32/BI_data" ;
    String username = "testadmin";
    String password = "ServerABC";
    
    try {
        Connection connection = DriverManager.getConnection(url,username,password);
        
        System.out.println("Connected to the database");
    } catch (SQLException e) {
        System.out.println("Error!!");
        e.printStackTrace();
    }
    
    }

}

看到的错误是

com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (4,739,923 > 65,535). You can change this value on the server by setting the 'max_allowed_packet' variable.
at mysql.connector.java@8.0.26/com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:107)
at mysql.connector.java@8.0.26/com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)
at mysql.connector.java@8.0.26/com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)
at mysql.connector.java@8.0.26/com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
at mysql.connector.java@8.0.26/com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at com.test.ssh.ConnectJDBC.main(ConnectJDBC.java:18)

我的最终目标是通过 SSH 连接远程 MySQL 服务器。但是这个问题阻碍了我的追求。任何有关分辨率的输入都将非常有帮助。

4

0 回答 0