从MySQL 8.0.16开始,MySQL Server支持--validate-config.
选项可以在不在正常操作模式下运行服务器的情况下检查启动配置的选项:
mysqld --validate-config
如果未找到错误,则服务器终止退出代码为0.如果找到错误,则服务器显示诊断消息并以退出代码终止。例如:
2018-11-05T17:50:12.738919Z 0 [ERROR] [MY-000068] [Server] unknown option'——no-such-option'。2018-11-05T17:50:12.738962Z 0 [ERROR] [MY-010119] [Server] abort
服务器一旦找到任何错误,服务器就会终止。要进行其他检查,请更正初始问题并运行服务器--validate-config.
再次。
对于上面的例子,其中使用--validate-config.
结果显示错误消息,服务器退出代码为1.根据“的警告”和信息消息也可以显示log_error_verbosity.
值,但不生成即时验证终止或退出代码为1.例如,此命令产生多个警告,两者都显示在内。但没有发生错误,因此退出代码为0:
shell> mysqld——validate-config——log_error_verbosity=2——read-only=s——transaction_read_only=s 2018-11-05T15:43:18.445863Z 0 [Warning] [MY-000076] [Server] option 'read_only': boolean value 's' was not recognized。设置为关闭。2018-11-05T15:43:18.445882Z 0 [Warning] [MY-000076] [Server] option 'transaction-read ': boolean value 's' was not recognized. [Warning] [MY-000076] [Server] option 'transaction-read ': boolean value 's' was not recognized.]设置为关闭。
此命令产生相同的警告,还产生错误,因此错误消息与警告一起显示,退出代码为1:
shell> mysqld --validate-config --log_error_verbosity = 2 - nno-supptoction-oction-oft = s --transaction_read_only = s 2018-11-05t15:43:53.152886z 0 [警告] [my-000076] [服务器]选项'read_only':无法识别布尔值的'。设置为关闭。2018-11-05T15:43:53.152913z 0 [警告] [MY-000076] [服务器]选项'Option-ock-only':无法识别布尔值的'。设置为关闭。2018-11-05T15:43:53.164889Z 0 [错误] [MY-000068] [服务器]未知选项' - 不使用选项'。2018-11-05T15:43:53.165053z 0 [错误] [MY-010119] [服务器]中止
的范围--validate-config.
选项仅限于配置检查,服务器可以在不经历其正常启动过程的情况下执行。因此,配置检查不会初始化存储引擎和其他插件、组件等等,也不会验证与那些未初始化的子系统相关的选项。
--validate-config.
可以随时使用,但在升级后特别有用,检查先前与旧服务器一起使用的任何选项是否被升级的服务器弃用或过时地考虑。例如,tx_read_only
系统变量在MySQL 5.7中弃用并在8.0中删除。假设在其系统中使用该系统变量运行MySQL 5.7服务器my.cnf
文件然后升级到MySQL 8.0。运行升级的服务器--validate-config.
要检查配置,请生成此结果:
shell> mysqld——验证-config 2018-11-05T10:40:02.712141Z 0 [ERROR] [MY-000067] [Server] unknown variable 'tx_read_only=ON'。2018-11-05T10:40:02.712178Z 0 [ERROR] [MY-010119] [Server]正在中止
--validate-config.
可以与the——defaults-file
仅选项仅在特定文件中验证选项:
2018-11-05T10:40:02.712141Z 0 [ERROR] [MY-000067] [Server] unknown variable 'tx_read_only=ON'。2018-11-05T10:40:02.712178Z 0 [ERROR] [MY-010119] [Server]正在中止
请记住——defaults-file
,必须是命令行上的第一个选项。(以相反的选项顺序执行前面的示例将生成一条消息——defaults-file
本身就是未知的。)