Bug #98443 mysqld --initialize no longer loads plugins resulting in broken init
Submitted: 30 Jan 2020 14:28 Modified: 30 Jan 2020 16:33
Reporter: Morgan Tocker Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:8.0.18 OS:Any
Assigned to: CPU Architecture:Any

[30 Jan 2020 14:28] Morgan Tocker
Description:
Between MySQL 8.0.17 and 8.0.18 there was a change where plugins are no longer loaded for --initialize or --initialize-insecure.

This broke Vitess, because the included config files set options which are registered with plugins:
https://github.com/vitessio/vitess/blob/master/config/mycnf/master_mysql80.cnf#L29-L30

Thus; the mysqld server refused to start because the config file contained unknown options.

How to repeat:
- Have a config file which contains an option which requires a plugin
- Run mysqld --initialize

Suggested fix:
Vitess is no longer affected because the options now start with --loose, but in chatting with Joro at FOSDEM, he encouraged me to file a bug, since MySQL may decide to change the behavior of --initialize to warn on unknown options instead of error, as it does in regular behavior.
[30 Jan 2020 16:33] MySQL Verification Team
Thank you for the bug report. Duplicate of bug https://bugs.mysql.com/bug.php?id=98156 which was closed as !bug with below comment from developer:

@ This is due to change in Bug#29622406, which prevents loading plugins during
@ initialize, hence all plugin variables are unknown. may want to try using
@ --loose option