原文標題: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/