新特性解讀 | 自動驗證 MySQL 配置正確性的新選項

原文標題:How to validate server configuration settings.mysql

做者:Nisha Gopalakrishnansql

翻譯:管長龍服務器

標籤:Configuration,How To,MySQL,Upgradessqlserver


升級 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 )退出。spa

例如,讓咱們考慮在 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 選項時,它應該是命令行上的第一個選項,如上所示。翻譯

因爲服務器在第一次出現無效值時退出,請更正報告的問題並從新運行以查找配置設置中的任何其餘問題。code

默認狀況下,僅報告錯誤消息。若是用戶也對警告和信息消息感興趣,則須要說起 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 用戶的工做更輕鬆,特別是在升級過程當中。

一如既往,感謝您使用MySQL!

查看原文:

https://mysqlserverteam.com/how-to-validate-server-configuration-settings/

相關文章
相關標籤/搜索