MYSQL tee的功能測試

來源:互聯網
上載者:User

         Mysql的tee功能是用來記錄使用者的操作記錄的,由於對mysql進行大量的更改操作,比如刪除,修改,添加等動作等等,涉及到生產環境中時候,這些操作有時候很有必要把整個操作記錄下來,以便核對尋找。Tee功能類似於oracle中的spool,下面對幾種tee的不同保方式測試:

一、直接指定檔案

出於這種是由於之前使用spool的時候每次spool時候都會使用spool '檔案路徑',結束後便用spool off即可。下面是測試:

初看結果,好像是正確指定了檔案和路徑,那麼我們去這個路徑是否看到這個tee.log呢,進入mysql使用者根目錄下的tmp目錄查看,已經產生了tee.log檔案,然後運行一些簡單操作測試是否記錄成功;

查看tee.log檔案;發現都是即時記錄了所有的操作記錄和結果。跟oracle有點不同的是,oracle每次都是在spool off之後才產生(應該沒有記錯)。關閉即用notee或者\t命令。

二、通過啟動帶參數--tee

啟動使用命令:mysql -uroot -p --tee=/home/mysql/tmp/ceshi.log -S /usr/local/mysql/tmp/3306/mysql.sock登入成功後,按正常同樣再測試一次操作記錄

查看ceshi.log,所有記錄均即時記載。

三、通過更改設定設定檔my.cnf

測試環境,先kill掉mysqld服務(生產環境一般沒有在my.cnf中增加該配置,這裡僅僅只是用來測試)。

關閉mysql,然後修改mysql的設定檔中的[client]選項段,添加以下內容:

[client]

port = 3306

socket = /usr/local/mysql/tmp/3306/mysql.sock

default-character-set = utf8

tee = /home/mysql/tmp/result.log

再次啟動mysql,查看/home/mysql/tmp/下是否產生了result.log檔案,一看沒有,奇怪了,按理說這樣的方式是正確的,在網上找了下大部分都講到了這三點,也沒有見誰說這種方式不行。會不會是版本有問題,我本機裝的是32位的mysql 5.1.57版本。於是換台機器,換個64位的mysql 5.1.50版本測試下;

一樣的配置一樣重新啟動了mysql。測試後發現還是沒有出現結果記錄;

原來寫入mysql設定檔中,在不同版本中有差異,目前有一些有些版本的mysql資料庫的tee功能在寫入設定檔的時候不生效,但是支援終端下命令列直接操作,例如上面2個版本都是沒有效果的,所以寫入設定檔中並不保險。目前還不清楚原因何在,猜測也有可能是某些版本存在bug ,希望知道的不吝賜教。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.