При добавлении записи в таблицу получал ошибку 1449 даже от рута. Как же это может быть что у рута нет каких-то привилегий. Осознал, что у этой таблицы моей есть триггер, который не могу запустить из-за нехватки прав. Советы в гугле на аглицком и не очень понятные какие-то… Копаясь нашёл такую команду:
1 2 3 |
SELECT TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_TABLE, ACTION_STATEMENT,DEFINER FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='mytable' |
увидел, что definer root@% но я-то root@localhost и это нормально ходить под рутом с локалхоста, а не с любого… Править эту таблицу не удалось. Alter trigger не нашёлся… 🙁
Решение, которое я нашёл такое: с помощью workbench сделал дамп базы с триггерами и процедурами и сделал "заменить всё во всех файлах" такой строки: DEFINER=root
@%
на DEFINER=CURRENT_USER. Это решило вопрос. Удаётся добавлять не только рутом, но и любым пользователем у которого есть привилегии на управление данной схемой.