Error
Error Code:
4009
MySQL Error 4009: Unsupported Reads on ACL Tables
Description
This error indicates that you are attempting to perform a read operation on an Access Control List (ACL) table using either the `SERIALIZABLE` transaction isolation level or a `SELECT ... FOR SHARE` clause. MySQL restricts these specific types of highly-isolated or shared-lock reads on its internal ACL tables, likely due to their sensitive nature or architectural design. It typically occurs when a query tries to enforce strict concurrency control on permission-related data.
Error Message
Reads with serializable isolation/SELECT FOR SHARE are not supported for ACL tables.
Known Causes
3 known causesUsing SELECT FOR SHARE on ACL Table
A SQL query explicitly includes `SELECT ... FOR SHARE` when targeting a table that MySQL identifies as an Access Control List (ACL) table.
Serializable Isolation Level
The current transaction's isolation level is set to `SERIALIZABLE`, and a read operation is attempted on an ACL table, which is not permitted under this strict isolation level for these tables.
Querying Internal ACL Tables
An application or user query is inadvertently targeting MySQL's internal tables that manage permissions and roles, which are subject to specific operational constraints.
Solutions
Coming SoonGeneral Troubleshooting Tips
- Check the error message carefully for specific details
- Review recent changes that might have caused the error
- Search for the exact error code in the official documentation
- Check log files for additional context
- Try restarting the application or service