mysql 服务无法启动 没有报告任何错误_新特性解读 | 自动验证 MySQL 配置正确性的新选项...

3ffeced00eab9129ece25ad421367c99.png

原创: 管长龙 译

原文标题: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 --tx_read_only=on --validate-config
2019-03-30T10:40:02.712141Z 0 [ERROR] [MY-000067] [Server] unknown variable
'tx_read_only=on'.
2019-03-30T10:40:02.712178Z 0 [ERROR] [MY-010119] [Server] Aborting


validate-config 选项还可以与配置文件一起使用,以检查配置文件中指定的选项。例如:

./runtime_output_directory/mysqld   
--defaults-file=/home/nisha/workspace1/my.cnf --validate-config
2019-03-07T06:23:31.411188Z 0 [ERROR] [MY-000067] [Server] unknown variable
'tx_read_only=1'.
2019-03-07T06:23:31.411250Z 0 [ERROR] [MY-010119] [Server] Aborting 


请注意,使用 defaults-file 选项时,它应该是命令行上的第一个选项,如上所示。
由于服务器在第一次出现无效值时退出,请更正报告的问题并重新运行以查找配置设置中的任何其他问题。
默认情况下,仅报告错误消息。如果用户也对警告和信息消息感兴趣,则需要提及 logerrorverbosity 选项值大于1。

./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.


如上所示,报告有关配置设置的警告,并退出服务器。因为没有错误,所以为零。在下面的示例中,配置名称无效,因此报告错误以及警告和服务器退出错误代码 1。

./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 用户的工作更轻松,特别是在升级过程中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值