52AV手機A片王|52AV.one

 找回密碼
 立即註冊
查看: 1033|回復: 0

[mysql] MySQL 設定 記錄執行過的 SQL 語法

[複製鏈接]
發表於 2015-11-8 22:27:36 | 顯示全部樓層 |閱讀模式
tid=21839&

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

之前用過的追蹤法是用 tcpdump 或 wireshark 聽 3306 port,這個太辛苦

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

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

  • log_slow_queries = /var/log/mysql/mysql-slow.log
  • long_query_time = 2 (超過 2秒的 SQL 語法記錄起來, 設短一點來記錄除錯也是一種方法 XD)
    8 c- @# u$ k+ _# [' c: S( |

第二種: 設 MySQL Replication 用 binlog:

  • log_bin = /var/log/mysql/mysql-bin.log (此檔要用 mysqlbinlog 解來看)
  • mysql 會將所有 INSERT/UPDATE/DELETE 語法記於此(但是語法可能跟你想的不同), 這是要寫給 SLAVE 用的 log 檔
    6 n. A4 p( P5 m8 z; Y! f9 l

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

  • log = /var/log/mysql/mysql.log
    9 I( X# x. G+ L( `. _

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

- ^: I7 u# P# C5 m4 Z5 |; e
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則



中文酷站排行榜

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板| 52AV手機A片王

GMT+8, 2024-12-25 14:34 , Processed in 0.066045 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表