If you’re installing Magento and run across an issue where the database cannot create triggers due to binary logging being turned on, it may be as simple as updating the MySQL global dynamic variable
log_bin_trust_function_creators to ON.
Here is an example of the error received while binary logging is on:
ERROR 1419 (HY000): 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)
At a MySQL Prompt, you can confirm Binary Logging is being used by the following command:
SHOW VARIABES LIKE 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+ 1 row in set (0.00 sec)
By setting the
log_bin_trust_function_creators variable to
ON, you’re allowing users with
CREATE ROUTINE or
ALTER ROUTINE privileges the ability to execute those commands within MYSQL with Binary Logging enabled.
SET GLOBAL log_bin_trust_function_creators=1;
While this is notedly less safe, it gets around the hurdle of installing Magento and once installation is finished, you can always reset the variable back with
SET GLOBAL log_bin_trust_function_creators=0;.
An alternative to using this approach would be to grant the account being used to install Magento with Super Privileges within MySQL.