1953
MariaDBERRORNotableTriggerHIGH confidence

Trigger does not have DEFINER information in the trigger file

Production Risk

High — the trigger fires an error on every qualifying DML statement.

What this means

A trigger definition loaded from disk is missing the DEFINER metadata, typically because it was created by an old MySQL version or the trigger file was corrupted.

Why it happens
  1. 1Trigger created by MySQL < 5.0.17 before DEFINER support was added.
  2. 2Manual editing or corruption of the .TRG trigger definition file.
How to reproduce
trigger — this will error
trigger — this will error
-- Firing any DML that activates the trigger raises this error

expected output

ERROR 1953 (HY000): Trigger 'my_trigger' does not have DEFINER information.

Fix

Recreate the trigger with an explicit DEFINER

Recreate the trigger with an explicit DEFINER
DROP TRIGGER IF EXISTS my_trigger;
CREATE DEFINER='root'@'localhost' TRIGGER my_trigger AFTER INSERT ON t FOR EACH ROW BEGIN END;

Why this works

Recreating the trigger repopulates the DEFINER metadata.

Sources
Official documentation ↗

MySQL 8.0 — 1953 ER_TRG_NO_DEFINER

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MariaDB errors