您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關MYSQL 8如何定住你的set variables,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在其他數據庫中,ORACLE ,SQL SERVER 中他們的配置的參數是比較少的,而MYSQL 在其中算是一個“奇葩”。配置參數之多,配置參數有的難于理解之多,配置參數變動可能性之多,是其他數據庫沒有的一種情況。
這里面熟悉MYSQL的就會體會到一個情況,就是我的my.cnf 和 我實際的配置的各種變量,可能是不同的,有的變量還好,在MYSQL重啟動后變回my.cnf 的配置,但有的時候變回去后,可能會給你出亂子,或者造成一些你不愿意看到的事情。
一般配置MYSQL的參數時候,如果我在MYSQL 運行的時候,配置一些系統或全局變量時,如果是決定的事情,我是會將這些配置,寫入到my.cnf 的,下次啟動一般不會有事情,但怕就是忘記了,或一些緊急處理的情況下,可能會造成,系統的配置和 運行的配置不一致的情況。
當然你可以寫一個程序來做一些對比的工作,避免一些問題。這里在MYSQL 8 中,系統已經為你想好了這樣的情景,并且已經有了官方的解決方案。
這個功能就是 SET PERSIST 方式來設置你的變量
我們舉例 在MYSQL 8 中查看當前的 innodb_buffer_pool_size
我們要將他更改為 8G
但如果你忘記在my.cnf中 也將這個配置更改了,那下次重啟動服務器,就會MY.CNF 文件配置中的“原形”。
而MYSQL 8 有了一個新的配置命令 persist ,這個命令可以幫你記錄你曾經在系統配置變量的操作歷史,并且幫助你在下次啟動也將這個配置加載到運行的環境。
那這個記錄文件在哪里,就在你的數據目錄中,mysqld-auto.cnf中
打開這個文件你可看到你剛才操作過得配置,以JSON 的方式,記錄在這個文件里面,誰配置了什么一目了然。
并且我在重啟 MYSQL 后相關的配置選項不會丟失
當然如果你刪除了記錄的文件,則相關的配置在MYSQL 再次啟動后就失效了。
并且通過某些語句,你可以很快的得到你的配置修改的日期,及誰更改的配置。
select a.VARIABLE_NAME,b.VARIABLE_value ,SET_TIME,SET_USER,SET_HOST
from performance_schema.variables_info a
join performance_schema.global_variables b
on a.VARIABLE_NAME=b.VARIABLE_NAME
where b.VARIABLE_NAME like 'innodb_buffer%';
當然如果你對你的配置想反悔的話,你可以運行 reset persist 命令,將你曾經做的,并記錄在文件中的配置,全部抹除。
reset persist;
想想這還真是一個不錯的功能。
看完上述內容,你們對MYSQL 8如何定住你的set variables有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。