Ошибка "Пакет для запроса слишком велик" при попытке сделать запрос на моем веб-сайте

Опять мне нужна твоя помощь. Я пытаюсь разместить свой веб-сайт на Java.

Что я использую:

  • MySQL сервер: командная строка mysql -V, результат: mysql Ver 15.1 Distrib 10.1.23-MariaDB, для debian-linux-gnu (x86_64) с использованием readline 5.2
  • кайенский перец
  • Сервер Debian
  • Ява (Ваадин)

Слишком большой пакет для запроса (4739923 > 1048576). Вы можете изменить это значение на сервере, установив переменную max_allowed_packet'.

Что я пробовал:

1. Как и в сообщении об ошибке, я попытался изменить значение на сервере, выполнив:

  • Войти на мой сервер
  • Подключитесь к MySQL с помощью: mysql -u root
  • Войти: SET GLOBAL max_allowed_packet=1073741824;
  • затем перезагрузите сервер с помощью: /etc/init.d/mysql restart

Но у меня все еще есть ошибка.

2. Я посмотрел на: Как изменить размер max_allowed_packet

Но, когда я сделал nano /etc/mysql/my.cnf, файл выглядит так (у меня нет [mysql]):

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Nov 10 23:57:02 2017 from 82.236.220.195
root@XXXX:~# nano /etc/mysql/my.cnf
  GNU nano 2.7.4               File: /etc/mysql/my.cnf                Modified

# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

В mysql папки / файлы в папке "mysql":

Любой намек будет очень признателен! Спасибо

РЕДАКТИРОВАТЬ: В /etc/mysql/mariadb.conf.d/50-server.cnf, Я изменился:

  1. max_allowed_packet = 1073741824
  2. max_connections = 100000

и я добавил: net_buffer_length = 1048576

Для информации: в моей рабочей среде я вижу переменные сервера:

EDIT2: Теперь, когда я выбираю переменную в командной строке на сервере, у меня есть:

MariaDB [(none)]> SELECT @@global.max_allowed_packet;
+-----------------------------+
| @@global.max_allowed_packet |
+-----------------------------+
|                  1073741824 |
+-----------------------------+
1 row in set (0.00 sec)

РЕШЕНИЕ Потому что ошибка не была явной.

Благодаря com.mysql.jdbc.PacketTooBigException

Моя конфигурация cayenne была:

<url value="jdbc:mysql://IPADDRESS:22/DBBASENAME" />
<login userName="ServerUserName" password="ServerPassword" />

Но это должно быть:

<url value="jdbc:mysql://IPADDRESS/DBBASENAME" />
<login userName="MYSQLUserName" password="MYSQLPassword" />

1 ответ

Решение

Измените это в my.cnf, затем перезапустите mysqld.

Еще лучше, поместите это в файл под /etc/mysql/mariadb.conf.d/и укажите раздел:

[mysqld]
max_allowed_packet = 1073741824

Что ты сделал (SET) ушел, когда вы перезапустили. Несмотря на это, он применяется только к соединениям, которые вошли в систему после выполнения SET,

Другие вопросы по тегам