原文标题:How to validate server configuration settings.
作者:Nisha Gopalakrishnan
翻译:管长龙
标签:Configuration,How To,MySQL,Upgrades
升级 MySQL 版本之后,许多用户在启动时并未更改配置文件,但发现新的的版本不再支持某些已弃用的选项,这会导致升级的 MySQL 服务关闭。在其他情况下,修改配置文件时错误输入无效的配置项会使得服务拒绝启动。在 MySQL 5.7 中,用户依赖于使用 ‘help’ 和 ‘verbose’ 选项以及服务器配置的组合来测试选项,即
./sql/mysqld --verbose --help --foo=bar To see what values a running MySQL server is using, type 'mysqladmin variables' instead of 'mysqld --verbose --help'. 2019-03-14T05:13:46.500953Z 0 [ERROR] Aborting
在 MySQL 8.0.16 中,引入了一个名为“validate-config”的新选项,以帮助用户快速测试服务配置,而无需运行。如果没有发现问题,服务器退出时退出代码为零。对于首次出现无效配置,服务器将以错误(错误号 1 )退出。
例如,让我们考虑在 MySQL 5.7 中弃用的服务器选项 ‘txreadonly’ 并删除 MySQL 8.0:
./runtime_output_directory/mysqld \ --log-error-verbosity=2 --validate-config --read_only=s --transaction_read_only=10 2019-03-09T11:10:01.270676Z 0 [Warning] [MY-000076] [Server] option 'read_only': boolean value 's' was not recognized. Set to OFF. 2019-03-09T11:10:01.270695Z 0 [Warning] [MY-000076] [Server] option 'transaction-read-only': boolean value '10' was not recognized. Set to OFF.
./runtime_output_directory/mysqld \ --log-error-verbosity=2 --validate-config --read_only=s --transaction_read_only=10 --foo=bar 2019-03-09T11:17:32.236782Z 0 [Warning] [MY-000076] [Server] option 'read_only': boolean value 's' was not recognized. Set to OFF. 2019-03-09T11:17:32.236796Z 0 [Warning] [MY-000076] [Server] option 'transaction-read-only': boolean value '10' was not recognized. Set to OFF. 2019-03-09T11:17:32.242247Z 0 [ERROR] [MY-000067] [Server] unknown variable 'foo=bar'. 2019-03-09T11:17:32.242327Z 0 [ERROR] [MY-010119] [Server] Aborting
‘validate-config’ 的范围仅限于在没有正常启动服务器去验证可以执行的选项。因此,’validate-config’ 不包括特定于在服务器正常启动期间初始化的存储引擎和插件的选项。有关 ‘validate-config’ 的信息也可以在 MySQL 文档中找到。我们希望这个新选项能让 MySQL 用户的工作更轻松,特别是在升级过程中。