Solución al error "You do not have the SUPER privilege and binary logging is enabled"

Author
By Darío Rivera
Posted on 2021-12-11 in MySQL

El día de hoy veremos un error muy común en MySQL cuando intentamos crear o actualizar algunos objetos de la base de datos como por ejemplo triggers. El error está realacionado con el uso de binary logs, y probablemente te haya sucedido un par de veces, el error en cuestión es el siguiente:

SQLSTATE[HY000]: General error: 1419 You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

Origen

Este error surge porque en la base de datos están activados los binary logs y estás tratando de realizar algún cambio a nivel de procedimientos almacenados, funciones, triggers o eventos.

El binary log contiene información acerca de todos los cambios que se ha realizado a la base de datos en un determinado momento, de tal forma que con ellos es posible reconstruir el estado actual de la base de datos. Esto es útil por ejemplo para instancias de réplica en donde se recibe dicha información y se ejecutan en el orden esperado para llegar al mismo estado que la instancia master.

Solución

Si estás seguro de que los cambios que vas a realizar no van a afectar a los logs binarios puedes correr el siguiente comando:

set global log_bin_trust_function_creators = 1;

Una vez hecho esto podrás realizar tus cambios y el error anterior no se presentará. Para volver a activar esta restricción puedes configurar la misma variable con el valor cero.

set global log_bin_trust_function_creators = 0;

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.