zoukankan      html  css  js  c++  java
  • 三种记录 MySQL 所执行过的 SQL 语句的方法

    程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 SQL 語法.(以下只以 MySQL 為主)

    之前用過的追蹤法是用 tcpdump 或 wireshark 聽 3306 port,這個太苦, 就不再多說~

    MySQL 有幾種方法可以用, 將以挑喜歡的其中一種, 加入 /etc/mysql/my.cnf(debian), 再 restart mysql 即可:

    第一種: 查 Slow query 的 SQL 語法:

    • log_slow_queries = /var/log/mysql/mysql-slow.log
    • long_query_time = 2 (超過 2秒的 SQL 語法記錄起來, 設短一點來記錄除錯也是一種方法 XD)

    第二種: 設 MySQL Replication 用 binlog:

    • log_bin = /var/log/mysql/mysql-bin.log (此檔要用 mysqlbinlog 解來看)
    • mysql 會將所有 INSERT/UPDATE/DELETE 語法記於此(但是語法可能跟你想的不同), 這是要寫給 SLAVE 用的 log 檔

    第三種: 推薦此方法, 將 MySQL 執行的每行指令全都記錄起來:

    • log = /tmp/mysql.log

    restart mysql 後, tail -f /tmp/mysql.log 就可以看到囉! 

    補充: 最早前的方法是 mysqldump, 然後執行完後再 mysqldump, 再 diff, 但是在 DB > 1G 後就放棄此方法了 XD


    ===========

    最近在玩PHALCON,发现没有好的DEBUG工具,SQL安全方面为了确定框架对SQL注入的过滤效果,记录一下,目前看来还是靠谱的。

  • 相关阅读:
    产生多种anchor的代码讲解!很好!
    一个报错
    将自己的数据制作成voc格式
    Python list 增加/插入元素的说明
    SAP 物料主数据屏幕增强 .
    软件測试必读书籍
    20160309,微软3月8日公布13个安全补丁
    UVA
    LLVM每日谈之十九 LLVM的第一本系统的书<Getting Started with LLVM Core Libraries>
    计算程序执行的时间
  • 原文地址:https://www.cnblogs.com/jpfss/p/9214752.html
Copyright © 2011-2022 走看看