Ошибка MySQL 1153 - получен пакет больше, чем байты 'max_allowed_packet'

создать новый файл со строковым образцом

String imagePath;
File test = new File(imagePath);
test.getName();
test.getPath();
getExtension(test.getName());


public static String getExtension(String uri) {
        if (uri == null) {
            return null;
        }

        int dot = uri.lastIndexOf(".");
        if (dot >= 0) {
            return uri.substring(dot);
        } else {
            // No extension.
            return "";
        }
    }
409
задан Bill Karwin 23 September 2017 в 15:42
поделиться

7 ответов

Вероятно, необходимо изменить его для обоих клиент (Вы работаете, чтобы сделать импорт), И демон mysqld, который выполняет и принимает импорт.

Для клиента, можно определить его на командной строке:

mysql --max_allowed_packet=100M -u root -p database < dump.sql

кроме того, измените my.cnf или файл my.ini под разделом mysqld и установите:

max_allowed_packet=100M

или Вы могли выполнить эти команды в консоли MySQL, подключенной к тому же самому серверу:

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000;

(Используют очень большое значение для размера пакета.)

543
ответ дан VSB 23 September 2017 в 15:42
поделиться

Это может быть изменено в Вашем my.ini файл (в Windows, расположенном в сервере \Program Files\MySQL\MySQL) под разделом сервера, например:

[mysqld]

max_allowed_packet = 10M
37
ответ дан Peter Mortensen 23 September 2017 в 15:42
поделиться

Ре my.cnf на Mac OS X при использовании MySQL с mysql.com dmg распределение пакета

По умолчанию, my.cnf нигде не найти.

необходимо скопировать один из /usr/local/mysql/support-files/my*.cnf к /etc/my.cnf и перезапуск mysqld. (Который можно сделать в предпочтительной области MySQL при установке ее.)

16
ответ дан kch 23 September 2017 в 15:42
поделиться

Набор max_allowed_packet к тому же (или больше), чем, чем это было при дампе его с mysqldump. Если Вы не можете сделать этого, сделайте дамп снова с меньшим значением.

таким образом, принимая Вас вывел его с mysqldump. При использовании некоторого другого инструмента Вы самостоятельно.

-1
ответ дан MarkR 23 September 2017 в 15:42
поделиться

Используйте max_allowed_packet переменная, дающая команду как

mysql --max_allowed_packet=32M -u root -p database < dump.sql

4
ответ дан Tomasz Tybulewicz 23 September 2017 в 15:42
поделиться

Как michaelpryor сказал, необходимо изменить его и для клиента и для демона mysqld сервер.

Его решение для клиентской командной строки хорошо, но ini файлы не всегда добиваются цели, в зависимости от конфигурации.

Так, откройте терминал, введите mysql, чтобы получить подсказку mysql и дать эти команды:

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000; 

Сохраните подсказку mysql открытой, и выполните свою командную строку выполнение SQL на втором терминале..

121
ответ дан 22 November 2019 в 23:26
поделиться

Немного не связано с вашей проблемой, поэтому вот вам один для Google.

Если вы не выполняли mysqldump SQL, возможно, ваш SQL неработоспособен.

Я получил эту ошибку из-за того, что в моем коде случайно оказался незакрытый строковый литерал. Неряшливые пальцы бывают.

Это отличное сообщение об ошибке для бегущей строки, спасибо за MySQL!

4
ответ дан 22 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: