1133
MariaDBERRORCommonSecurityHIGH confidence

Can't find any matching row in the user table

Production Risk

Low — operation is a no-op; no change is made.

What this means

ER_PASSWORD_NO_MATCH (1133, SQLSTATE HY000) is raised when SET PASSWORD or ALTER USER is executed for a user account that does not exist in the mysql.user table.

Why it happens
  1. 1Typo in the username or hostname
  2. 2User account was dropped before the password change was attempted
  3. 3Wrong host specified (e.g., 'user'@'%' vs 'user'@'localhost')
How to reproduce
trigger — this will error
trigger — this will error
SET PASSWORD FOR 'nonexistent_user'@'localhost' = 'newpass';

expected output

ERROR 1133 (HY000): Can't find any matching row in the user table

Fix

Verify the user account exists before changing password

WHEN Always.

Verify the user account exists before changing password
SELECT User, Host FROM mysql.user WHERE User = 'target_user';
-- Then use the correct user/host combination:
ALTER USER 'target_user'@'localhost' IDENTIFIED BY 'newpass';

Why this works

Checking mysql.user first confirms the exact User/Host combination before attempting the change.

What not to do

Create a new user when 1133 appears without investigating

1133 may indicate a typo or stale reference; creating a duplicate user with a corrected name creates confusion.

Sources
Official documentation ↗

MySQL 8.0 — 1133 ER_PASSWORD_NO_MATCH

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

← All MariaDB errors