<p>MySQL raises ER_UNSUPORTED_LOG_ENGINE when you attempt to create or alter a log table using a storage engine that MySQL does not allow for logging.</p>
<p>MySQL Error 1579: ER_UNSUPORTED_LOG_ENGINE occurs when a log table (general_log or slow_log) is assigned an unsupported storage engine. Restore the table to a permitted engine such as CSV or MyISAM, or switch logging output to FILE to resolve the issue.</p>
This storage engine cannot be used for log tables"
MySQL returns error 1579 with the message ER_UNSUPORTED_LOG_ENGINE when the server detects a log table that uses a storage engine it cannot manage. The affected tables are mysql.general_log and mysql.slow_log when log_output is set to TABLE.
Because the server depends on predictable, lightweight writes for logging, only specific engines are allowed. Using an engine outside the whitelist blocks logging and triggers this error.
Changing the storage engine of general_log or slow_log to InnoDB or another engine not approved for logging causes immediate failure the next time logging is enabled.
Importing a dump from another instance where log tables used a different engine also raises the error during restore.
Upgrading MySQL without recreating the log tables can leave them on legacy engines that the newer version disallows.
First, disable TABLE logging so the server stops writing to the unsupported tables. Next, rebuild the log tables with a supported engine. Finally, re-enable TABLE logging.
If you prefer file-based logs, set log_output to FILE and leave the tables unused.
Scenario: DBA altered mysql.slow_log to ENGINE=InnoDB. Solution: Recreate the table with ENGINE=CSV.
Scenario: Restored a mysqldump from MariaDB that used Aria engine. Solution: DROP and CREATE the log tables with MyISAM or CSV.
Lock down DDL on the mysql schema so only privileged users can modify system tables.
Automate checks in CI to validate that log tables use permitted engines before applying schema migrations.
ER_CANT_CREATE_LOG_FILE - Raised when MySQL cannot write to the logging directory. Fix by correcting file permissions.
ER_TABLEACCESS_DENIED_ERROR - Occurs when the server account lacks rights to write the log table. Grant INSERT on mysql.general_log.
Altering general_log or slow_log to ENGINE=InnoDB blocks the lightweight insert pattern MySQL expects, triggering the error.
Dump files from different MySQL variants may recreate log tables with engines like Aria, causing failure on restore.
Upgrading to a release that tightens engine rules leaves existing log tables in an invalid state until rebuilt.
Schema-wide ALTER scripts that blanket-convert tables to InnoDB can catch the mysql system schema by mistake.
File-based logging failed due to missing directory or permissions. Resolve by fixing path ownership.
User lacks INSERT rights on mysql.general_log, blocking log writes. Grant the privilege to the MySQL system account.
Log table was dropped but logging is still set to TABLE. Recreate the table or switch to FILE output.
No. Even recent releases restrict log tables to lightweight engines such as CSV and MyISAM.
Switching to FILE keeps existing rows intact. Recreate tables first if you need continuous in-table history.
Enable MySQL audit plugin or track DDL through a tool like Galaxy, which records run and edit history.
The error is local to the instance and does not break replication, but it can hide performance issues if slow query logging is disabled.