Ошибка "Пакет для запроса слишком велик" при попытке сделать запрос на моем веб-сайте
Опять мне нужна твоя помощь. Я пытаюсь разместить свой веб-сайт на 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
, Я изменился:
max_allowed_packet = 1073741824
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
,