En los logs de algunos WordPress durante la semana pasada hemos encontrado miles de errores que empiezan por «Got a packet bigger than ‘max_allowed_packet’ bytes de la base de datos de WordPress».
Un ejemplo de error completo es este (donde hemos eliminado el option_value porque es muy extenso y no aporta nada:
[Tue Apr 09 06:30:43.806875 2019] [proxy_fcgi:error] [pid 21746] [client 5.188.210.72:37809] AH01071: Got error 'PHP message: Error Got a packet bigger than 'max_allowed_packet' bytes de la base de datos de WordPress para la consulta UPDATE `wp_DOMINIO_options` SET `option_value` = '...', referer: https://DOMINIO.COM/producto-woocommerce/?unapproved=884&moderation-hash=8008d3f146be5247c699aca9b48f736b#comment-884
Son inyecciones en los comentarios de productos de WooCommerce que al final incluso llegan a tumar el servidor.
¿Cómo solucionar el problema de «Got a packet bigger than ‘max_allowed_packet’ bytes»?
Esto es un error de MySQL que se puede solucionar aumentando el valor de «max_allowed_packet» por ejemplo a 500M.
Para ello deberemos añadir esta línea:
max_allowed_packet=500M
en el archivo my.ini / ~/.my.cnf / mysqld.cnf que en MySQL 5.7 está en:
/etc/mysql/mysql.conf.d/mysqld.cnf
y en MySQL 5.6 está en:
/etc/my.cnf
La línea para incrementar el «max_allowed_packet» hay que añadirla en la sección de:
[mysqld]
o
[client]
Y luego reiniciar MYSQL y todo solucionado. En Ubuntu con:
sudo service mysql restart
Y comprobar que todo funciona con:
service mysql status