Ошибка 1142 при вставке данных в таблицу MySQL

432
26 ноября 2016, 20:18

При выполнении вставки данных в таблицу я получаю ошибку:

Error Code: 1142
TRIGGER command denied to user 'root'@'%' for table 'import_files_log'

При этом и мой текущий пользователь, и DEFINER триггера, связанного с таблицей, оба обладают правами суперюзера. Так, запрос

SELECT CURRENT_USER();

выдаёт результат

user@%,

и триггер, связанный с таблицей, содержит строку:

/*!50017 DEFINER = 'root'@'%' */

В то время как таблица mysql.user содержит следующие записи:

В чём тогда причина ошибки?

Answer 1

Посмотрите все права для пользователя 'root'@'%' командой

SHOW GRANTS FOR 'root'@'%';

у Вас не будет хватать привилегии TRIGGER. Добавьте ее командой

GRANT TRIGGER ON *.* TO 'root'@'%';

или выдайте все права

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
READ ALSO
Не проходит проверка столбца php/бд [закрыто]

Не проходит проверка столбца php/бд [закрыто]

Warning 1: mysql_query() expects parameter 1 to be string

237
Prepared Statements в Java , ошибка в синтаксисе!

Prepared Statements в Java , ошибка в синтаксисе!

Проблема в написании правильно строки с prepared statementom

260
Сохранение целой строки данных из DataGrid в БД (mysql)

Сохранение целой строки данных из DataGrid в БД (mysql)

Имеется WPF-приложение, на котором DataGrid, выбирающий данные из Mysql-базыЕсть ли возможность отправить в БД вновь добавленную строку (целиком)...

258
Правильное использование Prepared statements в java

Правильное использование Prepared statements в java

Мой предыдущий пост!, после чего я поменял код, привожу пример:

311