Closed shenkonghui closed 2 years ago
在initialize阶段不配置,initialize以后再配置启动是正常的
And also the fact that unknown options prevent mysqld from starting is also well known behavior. This makes the bug report a feature request technically. Marking the bug as such.
Now on ways to fix this: I do not think that currently --initalize needs any external plugins to perform its function. On the contrary: the server is in such a limbo state at init time that allowing arbitrary plugins to load during that time is probably not a very sustainable.
As for fixing the issue. Unfortunately there's very little one can do to fix this issue as it's a well-known consequence from the architectural decision of having options for dynamically loadable components interwoven with the server options. This leaves the server with no way of distinguishing between a misspelled and a correctly-spelled-but-for-a-missing-plugin option. We are working on a solution for this covering components but it's a feature and not a bug fix as it changes architecture.
In the meanwhile I would suggest workarounds:
https://bugs.mysql.com/bug.php?id=100363 https://docs.oracle.com/cd/E17952_01/mysql-8.0-relnotes-en/news-8-0-18.html#mysqld-8-0-18-feature
加上loose前缀即可,initialize会自动忽略掉该配置
loose-rpl_semi_sync_master_enabled =ON
loose-rpl_semi_sync_master_timeout =1000
loose-rpl_semi_sync_master_trace_level =32
loose-rpl_semi_sync_master_wait_for_slave_count =1
loose-rpl_semi_sync_master_wait_no_slave =ON
loose-rpl_semi_sync_master_wait_point =AFTER_SYNC
loose-rpl_semi_sync_slave_enabled =ON
loose-rpl_semi_sync_slave_trace_level =32
initialize阶段提示配置错误