SQL – Packets larger than max_allowed_packet are not allowed – JAVA

Packets larger than max_allowed_packet are not allowedRealizando un proyecto personal me encontré con el siguiente problema en MySQL: “Packets larger than max_allowed_packet are not allowed”. Se trataba de un proyecto donde agregaba imágenes a la base de datos mediante el tipo BLOB. El mensaje de advertencia viene a decir que la imagen es demasiado grande.

Encontré por Internet varias soluciones, pero ninguna me explicaba cómo solucionar este problema desde el código de java.

A continuación os explico cómo lo solucioné:

Volver a Mi lado Informático

Seguiremos los siguientes pasos:

  1. Configuración base de datos:
    • Si podemos crear la base de datos de nuevo, lo recomendable sería utilizar el mayor tamaño de archivos BLOB: “LONGBLOB”.
      • Esta web explica muy bien los diferentes tipos de BLOB que existen: Mysql.com
  2. Código en Java:
    • Una vez hecho configurado correctamente la base de datos, escribiremos el siguiente código en java (sugerencia):
    static String driverConexion_MySQL = "com.mysql.jdbc.Driver";
    static String urlConexion_MySQL = "jdbc:mysql://localhost/database_mysql";
    static String user_MySQL = "root";
    static String password_MySQL = "";
    
    public static Connection conectarBD() {
        try {
                //Cargamos driver MySQL
                Class.forName(driverConexion_MySQL);

                //Establecemos conexión a la BD MySQL
                conexionBD = DriverManager.getConnection(
                        urlConexion_MySQL, user_MySQL, password_MySQL);

                //Aumentamos el tamaño permitido
                String aumentarTamanoBD = "SET GLOBAL max_allowed_packet=1073741824";

                Statement sentenciaAumentarTamano = conexionBD.createStatement();
                sentenciaAumentarTamano.executeUpdate(aumentarTamanoBD);
                sentenciaAumentarTamano.close();
            
        } catch (Exception ex) {
            System.out.println("Error conexión BD:" + ex.getMessage());
        }
        return conexionBD;
    }

Espero que os sea útil

¡Que seáis felices!

Fuente:

Ver más en: Mi lado Informático
Volver arriba