2010-07-27 4 views
1

У меня есть следующая функция. Когда я пытаюсь создать его на веб-сервере, он терпит неудачу сОшибка MySQL CREATE FUNCTION на общем веб-сервере

Вы не имеете SUPER привилегий и бинарный лог включен (вы может хотите использовать менее безопасные log_bin_trust_function_creators переменные)

У меня никогда не было той же проблемы с любым другим веб-хостингом (и с той же функцией), как я могу это исправить? (Я не могу изменить настройки MySQL). версия

CREATE FUNCTION `has_action_access`(in_role VARCHAR(255), in_request VARCHAR(255), in_action VARCHAR(255)) RETURNS tinyint(1) 
    READS SQL DATA 
    DETERMINISTIC 
BEGIN 

    DECLARE current_role VARCHAR(255); 
    DECLARE found, cont TINYINT(1) DEFAULT 0; 
    SET current_role = in_role; 

    findattempt: REPEAT 
     SELECT COUNT(*) FROM cyp_action_access WHERE request = in_request AND action = in_action AND role = current_role INTO found; 

     IF found = 0 THEN 
      SELECT COUNT(*) FROM cyp_roles WHERE name = current_role INTO cont; 
      IF cont = 1 THEN 
       SELECT inherits FROM cyp_roles WHERE name = current_role INTO current_role; 
       END IF; 
      END IF; 
    UNTIL (cont = 0 OR found > 0) END REPEAT; 
    RETURN found; 
END; 
  • MySQL сервера является 5.0.90-log.

ответ

2

Ваш пользователь не имеет супер привилегий. Вам нужно будет связаться с вашим провайдером веб-хостинга и обновить его. Если они не предоставят вам эту опцию, попросите их выполнить сценарий для вас.

+0

Для чего нужна суперпривидие для создания функции? – cypher

+0

+1: Да, [на документацию] (http://dev.mysql.com/doc/refman/5.1/en/stored-programs-logging.html) - найдите ссылку 1419 и прокрутите страницу немного. –

+0

О, хорошо, я этого раньше не видел. Черт. – cypher

 Смежные вопросы

  • Нет связанных вопросов^_^