對(duì)于MySQL,很多印象其實(shí)都是來(lái)自比較老的4.x版本,實(shí)際上MySQL在后續(xù)的5.0,5.1和6.0版本中還是做出了很多的改進(jìn),特別是原來(lái)一些動(dòng)不動(dòng)要重啟的操作,慢慢的都可以在線做了,如果要做企業(yè)級(jí)數(shù)據(jù)庫(kù),在線操作的支持是必不可少的。由于我們?cè)诋a(chǎn)品庫(kù)中大量開(kāi)始使用5.1,所以打算寫(xiě)一個(gè)系列短文,介紹一些個(gè)人覺(jué)得比較實(shí)用的新特性。因?yàn)镸ySQL這樣的開(kāi)源軟件,版本分支比較多,所以每篇文章涉及的一些小版本可能不太一樣。
MySQL有很多種日志,包括error log,general query log,binary log,slow query log等。在以前的版本,這些日志的開(kāi)啟或者關(guān)閉,都是需要重啟服務(wù)器的,而且都是記錄到日志文件。從MySQL5.1.6版開(kāi)始,general query log和slow query log開(kāi)始支持寫(xiě)到文件或者數(shù)據(jù)庫(kù)表兩種方式,并且日志的開(kāi)啟,輸出方式的修改,都可以在Global級(jí)別動(dòng)態(tài)修改。
如果說(shuō)日志是寫(xiě)到文件還是表,對(duì)于DBA來(lái)說(shuō)不是那么在乎的話(huà),那么可以動(dòng)態(tài)的開(kāi)啟關(guān)閉日志真的可以說(shuō)是DBA們夢(mèng)寐以求的。尤其是slow log query,以前一直在頭疼,開(kāi)啟吧,可能影響性能,不開(kāi)吧,對(duì)于一些性能差的SQL又沒(méi)有其他好用的捕獲方式。因?yàn)殚_(kāi)還是不開(kāi),涉及到重啟服務(wù)的問(wèn)題。
下面演示一下通過(guò)設(shè)置幾個(gè)Global級(jí)別參數(shù)來(lái)開(kāi)啟關(guān)閉general query log和slow log query的過(guò)程:
| 以下為引用的內(nèi)容: root@NinGoo>select version(); |
設(shè)置日志輸出方式為文件
| 以下為引用的內(nèi)容: root@NinGoo>set global log_output=file; 設(shè)置general log和slow query log的日志文件路徑 root@NinGoo>set global general_log_file='/tmp/general.log'; 開(kāi)啟general log和slow query log,相應(yīng)的,關(guān)閉只要設(shè)置參數(shù)為off root@NinGoo>set global general_log=on; |
如果設(shè)置log_output=table的話(huà),則日志結(jié)果會(huì)記錄到名為gengera_log和slow_log的兩張表中,這兩張表的默認(rèn)引擎都是CSV,其實(shí)就是將日志保存為CSV文件格式了。當(dāng)然,也可以將這兩張表改為MyISAM引擎,這不是問(wèn)題。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注