2012-03-29 21 views
19

Descubrí cómo cambiar el valor predeterminado de max_allowed_packet en MySQL usando SET GLOBAL. Sin embargo, cada vez que usé este comando, ¡el valor predeterminado permaneció intacto! que utilizan estos comandos:SET GLOBAL max_allowed_packet no funciona

mysql --user=root --password=mypass 
mysql> SET GLOBAL max_allowed_packet=32*1024*1024; 
Query OK, 0 rows affected (0.00 secs) 
mysql> SHOW VARIABLES max_allowed_packet; 

Y entonces el resultado es max_allowed_packet = 1048576. ¿Qué me falta?

Respuesta

33

Hmmmm ... Al parecer ha marcado NOT-A-BUG. :)

Si cambia una variable de sistema global, el valor se recuerda y se utiliza para las nuevas conexiones hasta que el servidor se reinicie. (Para establecer una configuración de variable de sistema global permanente, debe establecerlo en un archivo de opciones). El cambio es visible para cualquier cliente que tenga acceso a esa variable global. Sin embargo, el cambio afecta a la variable de la sesión correspondiente solo para los clientes que se conectan después del cambio. El cambio de variable global hace no afecta la variable de sesión para cualquier cliente que esté actualmente conectado (ni siquiera ese del cliente que emite la instrucción SET GLOBAL).

Consulte también this. Lee la explicación de Shane Bester.

Debe cambiar desde el archivo my.ini/my.cnf y reiniciar el servidor para que la configuración de max_allowed_packet surta efecto.

+0

excepto que el "error" está cerrado como "no es un error". –

+1

gracias señor por su respuesta. pero probé a reiniciar mysql después de eso, ¡aún estoy obteniendo el límite de 1 Mb! – Breeze

+0

@ J-16 SDiZ, Sí, han marcado el problema como No es un error (Problema, que aún nos resulta confuso). –

1

Solo una manera rápida de ver la variable para cualquiera que se encuentre con esto. Para obtener el valor de nuevo que necesita para ejecutar

SHOW VARIABLES LIKE 'max_allowed_packet' 
+0

OP hizo esto, y no devolvió el valor esperado por los motivos descritos en el respuesta aceptada – cbmanica

2

Después de ejecutar

set global max_allowed_packet=1000000000; 

tiene que reiniciar MySQL antes

SHOW VARIABLES LIKE 'max_allowed_packet' 

mostrará el nuevo valor.

Tengo este problema al reiniciar mysql a través de las preferencias del sistema MAC OSX y el valor no ha cambiado. Por lo tanto, al iniciar sesión en mysql a través de la consola

mysql -u root -p 

cambiarlo y luego reiniciar mySql parecía funcionar. Podría haber sido una rareza de OS X sin embargo.

Cuestiones relacionadas