SharePoint Alfresco PHP MySQL
О сайте Контакты
вторник, 15 ноября 2011 г.

Mysql 5.5, ошибка TRIGGER command denied to user 'root'@...

Когда возникает необходимость установить триггеры в MySQL 5.5, сервер может выдавать вышеуказанную ошибку. Это происходит оттого, что пользователю root при входе с удаленных машин не выданы права для действия TRIGGER. Такие права выданы только для локального пользователя root под localhost. Думаю, это сделано разработчиками специально, из соображений безопасности.

Некоторые господа считают это багом: http://bugs.mysql.com/bug.php?id=42260

Так или иначе, нужно просто разрешить пользователю root@% (или любому другому пользователю) с удаленной машины выполнять действие TRIGGER. Для этого можно использовать нехитрый PHP-скрипт:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);

mysql_connect("localhost", "root", "password");
mysql_select_db("db_name");
mysql_query ("GRANT  TRIGGER ON  `db_name`.* TO 'root'@'%'");
?>

После выполнения данного скрипта пользователю root с удаленной машины будет доступна операция установки триггера.

Sergey Lysenko, вторник, 15 ноября 2011 г.

Комментарии: