真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql的全量(查詢)日志general-log的開啟和分析方法-創(chuàng)新互聯(lián)

    熟悉mysql的朋友應(yīng)該都知道,error日志只記錄數(shù)據(jù)庫層的報錯,binlog只記錄增/刪/改的記錄,但是沒記錄誰執(zhí)行,只記錄執(zhí)行用戶名,slowlog雖然詳細,但是只記錄超過設(shè)定值的慢查詢sql信息.

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比青州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式青州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋青州地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

    只有g(shù)eneral-log才是記錄所有的操作日志,不過他會耗費數(shù)據(jù)庫5%-10%的性能,所以一般沒什么特別需要,大多數(shù)情況是不開的,例如一些sql審計和不知名的排錯等,那就是打開來使用了.

開啟的方法

開啟方法很簡單,

#先查看當(dāng)前狀態(tài) mysql> show variables like 'general%'; +------------------+--------------------------------+ | Variable_name    | Value                          | +------------------+--------------------------------+ | general_log      | OFF                            | | general_log_file | /data/mysql/data/localhost.log | +------------------+--------------------------------+ 2 rows in set (0.00 sec) #可以在my.cnf里添加,1開啟(0關(guān)閉),當(dāng)然了,這樣要重啟才能生效,有點多余了 general-log = 1 log = /log/mysql_query.log路徑 #也可以設(shè)置變量那樣更改,1開啟(0關(guān)閉),即時生效,不用重啟,選當(dāng)然是這樣的了 set global general_log=1 #這個日志對于操作頻繁的庫,產(chǎn)生的數(shù)據(jù)量會很快增長,出于對硬盤的保護,可以設(shè)置其他存放路徑 set global general_log_file=/tmp/general_log.log

    然后就開啟完了,看看是否有這個文件存在并產(chǎn)生了日志,我們看到localhost.log已經(jīng)生成了,因為我是默認的,所以名字就是這樣的.

#ll 總用量 3215528 -rw-rw----. 1 mysql mysql         56 9月   5 11:32 auto.cnf drwx------  2 mysql mysql       4096 9月  17 14:09 gw -rw-rw----  1 mysql mysql      25666 9月   8 17:07 ib_buffer_pool -rw-rw----. 1 mysql mysql 1073741824 9月  19 10:21 ibdata1 -rw-rw----. 1 mysql mysql 1073741824 9月  19 10:21 ib_logfile0 -rw-rw----. 1 mysql mysql 1073741824 9月   5 11:27 ib_logfile1 -rw-rw----  1 mysql mysql          5 9月   8 17:11 localhost.localdomain.pid -rw-rw----  1 mysql mysql    6699602 9月  19 09:50 localhost.log -rw-rw----  1 mysql mysql          5 9月  14 09:16 localhost.pid drwx------. 2 mysql mysql       4096 9月   5 11:27 mysql -rw-rw----  1 mysql mysql      34539 9月   7 14:57 mysql-bin.000006 -rw-rw----  1 mysql mysql   13746613 9月   8 17:07 mysql-bin.000007 -rw-rw----  1 mysql mysql     498989 9月  14 09:16 mysql-bin.000008 -rw-rw----  1 mysql mysql   48302055 9月  19 10:20 mysql-bin.000009 -rw-rw----  1 mysql mysql        136 9月  14 09:16 mysql-bin.index -rw-rw----. 1 mysql mysql      57569 9月  14 09:16 mysql.err drwx------. 2 mysql mysql       4096 9月   5 11:27 performance_schema drwx------  2 mysql mysql       4096 9月  17 14:35 test

    開啟完了,就看怎么分析了.

分析日志

    其實也比較直觀,只是容易混淆,下面來看例子.

/usr/local/mysql/bin/mysqld, Version: 5.6.32-78.0-log (Percona Server (GPL), Release 78.0, Revision 8a8e016). started with: Tcp port: 3306  Unix socket: /tmp/mysql.sock Time                 Id Command    Argument 160919  9:28:19 30722 Connect   root@192.168.1.252 on test                 30722 Query     SET SESSION sql_mode =                                         REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(                                         @@sql_mode,                                         "STRICT_ALL_TABLES,", ""),                                         ",STRICT_ALL_TABLES", ""),                                         "STRICT_ALL_TABLES", ""),                                         "STRICT_TRANS_TABLES,", ""),                                         ",STRICT_TRANS_TABLES", ""),                                         "STRICT_TRANS_TABLES", "")                 30722 Query     SET NAMES utf8                 30722 Query     SELECT * FROM `type` WHERE `pid` = 30                 30722 Quit 160919  9:28:38 29975 Query     SHOW GLOBAL STATUS 160919  9:28:39 30728 Connect   root@192.168.1.95 on test                 30728 Query     SET SESSION sql_mode =                                         REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(                                         @@sql_mode,                                         "STRICT_ALL_TABLES,", ""),                                         ",STRICT_ALL_TABLES", ""),                                         "STRICT_ALL_TABLES", ""),                                         "STRICT_TRANS_TABLES,", ""),                                         ",STRICT_TRANS_TABLES", ""),                                         "STRICT_TRANS_TABLES", "")                 30728 Query     SET NAMES utf8                 30728 Query     SELECT `a`.*, `b`.`clientname`, `b`.`deptname`, `b`.`receiveprovince`, `b`.`carriers`, `b`.`receivecity` FROM `repri` as `a` LEFT JOIN `illmain` as `b` ON `a`.`illid` = `b`.`illID` WHERE `a`.`id` = '21'                 30728 Query     SELECT `typename` FROM `type` WHERE `id` = '8'                 30728 Query     SELECT `typename` FROM `type` WHERE `id` = '9'                 30728 Query     SELECT * FROM `handlepri` WHERE `id` = '21'                 30728 Query     SELECT * FROM `low_re` WHERE `low` = '21' AND `type` =0 ORDER BY `id` desc                 30728 Query     SELECT * FROM `guide` WHERE `ll_type` = '9'                 30728 Query     SELECT * FROM `illmain` WHERE `illid` = '0992016' OR `orderid` = '0992016'                 30728 Quit

    我們來按列來解析

第一列:時間列,前面一個是日期,后面一個是小時和分鐘,有一些不顯示的原因是因為這些sql語句幾乎是同時執(zhí)行的,所以就不另外記錄時間了.

第二列:ID列,就是show processlist出來的第一列的線程ID,對于長連接和一些比較耗時的sql語句,你可以精確找出究竟是那一條那一個線程在運行.

第三列:操作類型,Connect就是連接數(shù)據(jù)庫,Query就是查詢數(shù)據(jù)庫(增刪查改都顯示為查詢),可以特定過慮一些操作.

第四列:詳細信息,例如上面例子Connect的詳細信息就是root@192.168.1.95 on test,意思就是root@192.168.1.95連上test庫,如此類推,下面的意思就是30728這個線程號連上數(shù)據(jù)庫之后,做了什么查詢的操作.

    還有其他一些grant/drop/create/alter等的操作,general_log都回全部記錄下來,不過這里就不細細演示了,各位可以嘗試一下.

  最后,也正如我開始說的,有了這些信息,做sql語句審計就變得可能了,找到責(zé)任人也是沒有壓力的,而對于一些疑難雜癥的sql分析也是很簡單了.

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文題目:mysql的全量(查詢)日志general-log的開啟和分析方法-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/coecdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部