[MDEV-26372] enforce-storage-engine=InnoDB has no usability as an option to mysqld-install-db Created: 2021-08-16 Updated: 2022-12-19 Resolved: 2021-08-16 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2, 10.3, 10.4, 10.5, 10.6, 10.7 |
| Fix Version/s: | 10.4.22, 10.5.13, 10.6.5 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Roel Van de Paar | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
Starting mysqld-install-db server setup with --enforce-storage-engine=InnoDB gives:
Interesting is also the 168 unknown error from InnoDB. Perhaps a better way to handle this would be to automatically make system tables MyISAM (without any overwrite possibility). This would also make sense given that a server which already has MyISAM system tables can be started fine with --enforce-storage-engine=InnoDB thereafter, i.e. the "enforce" naming can be misleading in any case. Another option is to disable the enforce-storage-engine option (or the InnoDB setting specifically) for mysqld-install-db only. |
| Comments |
| Comment by Marko Mäkelä [ 2021-08-16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Creation of tables by the three names mysql.user, mysql.host, mysql.db is being blocked in the function row_mysql_is_system_table(). Since So, when it comes to MariaDB Server 10.4 or later, the question is whether we can allow mysql.db to be created in InnoDB. With the following patch, a test run is encountering other problems, because any use of explicit ENGINE=MyISAM would lead to a failure:
The most prominent failure is this:
The following would remove the special handling of the table names when creating or renaming InnoDB tables:
An additional patch would allow 88% of --suite=innodb to pass, including some recovery tests. Many tests would fail due to ENGINE=MyISAM or similar.
|