3111
MariaDBERRORNotableServer AdministrationHIGH confidence
Cannot use SET PERSIST for this variable
Production Risk
Low — only the SET statement fails.
What this means
SET PERSIST or SET PERSIST_ONLY cannot be used for this variable, either because it is not a dynamic variable or because persisting it is not supported.
Why it happens
- 1Attempting SET PERSIST on a read-only variable.
- 2Using SET PERSIST_ONLY on a variable that does not support persistence.
How to reproduce
trigger — this will error
trigger — this will error
SET PERSIST max_connections = 200; -- when persisted_globals_load is OFF
expected output
ERROR 3111 (HY000): SET PERSIST is not supported for 'variable_name'.
Fix 1
Use SET GLOBAL for non-persistent changes
Use SET GLOBAL for non-persistent changes
SET GLOBAL max_connections = 200;
Why this works
Changes the variable for the current server session without writing to mysqld-auto.cnf.
Fix 2
Enable persisted_globals_load and use SET PERSIST
Enable persisted_globals_load and use SET PERSIST
-- Ensure persisted_globals_load=ON in my.cnf and restart SET PERSIST max_connections = 200;
Why this works
Writes the setting to mysqld-auto.cnf for persistence across restarts.
What not to do
✕
Sources
Official documentation ↗
MySQL 8.0 — 3111 ER_CANT_SET_PERSIST2
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev