mysql_upgrade fails with disabled InnoDB

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

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.

Environment

None

Status

Assignee

Sergey Vojtovich

Reporter

Elena Stepanova

Labels

None

External issue ID

None

External issue ID

None

Fix versions

Affects versions

Priority

Major
Configure