Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.4
-
None
-
None
Description
Initially reported at https://blog.mariadb.org/mariadb-10-0-4-alpha-now-available/
If server is started without InnoDB on an old datadir, mysql_upgrade fails with
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
ERROR 1286 (42000) at line 37: Unknown storage engine 'INNODB'
|
ERROR 1286 (42000) at line 46: Unknown storage engine 'INNODB'
|
FATAL ERROR: Upgrade failed
|
scripts/mysql_fix_privilege_tables.sql sets NO_ENGINE_SUBSTITUTION and then attempts to create tables using InnoDB engine, so the error is not surprising.
MySQL 5.6.13 has additional logic that checks for the presence of InnoDB and skips table creation if there is no InnoDB. However, it should be adopted with caution, because it also has a problem, later it attempts to ALTER the tables unconditionally, so mysql_upgrade fails anyway (see http://bugs.mysql.com/bug.php?id=70152).
As discussed, we should not create the tables if InnoDB is disabled (and should not attempt ALTERing them). mysql_upgrade should not fail, but it might make sense to produce a warning.