2009-09-10 19 views
10

MySQL 5.0.67 ver espermisos para crear un disparador en MySQL

mi código de activación es:

DELIMITER // 
CREATE TRIGGER upd_price BEFORE UPDATE ON product_price 
FOR EACH ROW BEGIN 
    INSERT INTO update_price_log (product_id, product_price_old, product_price_new) values(OLD.product_id, OLD.product_price, NEW.product_price); 
END 
// 
DELIMITER ; 

error es:

# 1227 - Acceso denegado; necesita el SUPER privilegio para esta operación

mi servidor, no es cpanel! es: DirectAdmin Web Control Panel.

¿cómo puedo crear privilegio SUPER y crear mi activador?

Respuesta

11

Debe tener privilegios de raíz de MySQL para establecer el permiso SUPER para un usuario.

GRANT SUPER 
ON '<database>'.'<tablename/*>' 
TO '<username>'@'<host/connection/ip/%>'; 
+0

Ah que era mi problema. Otorgué permiso al usuario del host local pero no a la conexión desde mi estación de trabajo. – Mike

+0

ya no es válido, puede establecer activadores para su propia cuenta sin suuper rights – Blauhirn

+0

@Blauhirn ¿cómo? Estoy usando hosting compartido y no puedo crear desencadenantes –

2

Otra forma de crear gatillo sin privilegio SUPER mediante la adición de la siguiente línea al my.cnf o my.ini log_bin_trust_function_creators = 1

+0

para configurar esto, también necesita super privilegios –

1

Otra forma alrededor de this bug, si es aceptable, es deshabilitar binary logging.

He hecho esto porque no estoy usando un servidor de replicación, ni estoy haciendo copias de seguridad de los binlogs para la recuperación. Pero podría no ser apropiado en tu situación.

Para hacerlo, basta con comentar log_bin y log_bin_index líneas en su privilegio de /etc/mysql/my.cnf

Ahora desencadenar funciona bien sin ESTUPENDO.

3

Me trataron de dar privilede de SUPER en el nivel database.table, pero no funciona, así que lo hice

grant super on *.* to 'my_user'@'localhost'; 

creó entonces mis disparadores. Pero no se olvide de revocarla

revoke super on *.* from 'my_user'@'localhost'; 

Debido a que es un privilegio peligroso dejar que concedió la base de datos de Internet

Cuestiones relacionadas