目錄
1。啟用一般查詢日誌
2。檢查當前記錄狀態
3。了解日誌輸出目標( log_output
4。績效和安全考慮
5。替代:緩慢查詢日誌(用於性能調整)
首頁 資料庫 mysql教程 如何記錄在MySQL Server上運行的所有查詢?

如何記錄在MySQL Server上運行的所有查詢?

Aug 02, 2025 pm 01:57 PM

使用SET GLOBAL eneral_log ='on'啟用常規查詢日誌,或在my.cnf中使用eneral_log = 1進行配置,並為日誌路徑指定常規_log_file。 2。使用“常規_log”之類的顯示變量驗證記錄狀態,並顯示'eneral_log_file'之類的變量。 3。將log_output設置為“文件”以用於基於文件的日誌記錄或“表”以存儲logs在mysql.general_log中,檢查當前設置,並顯示“ log_output”(例如'log_output')。 4.監視性能和安全性:在生產中禁用長期使用,保護日誌中的敏感數據,並使用pottrotate腳本進行文件管理來刷新日誌。 5。考慮使用slow_query_log並設置long_query_time,考慮使用慢速查詢日誌而不是最小的開銷進行性能調整。一般查詢日誌應在不再需要時暫時使用並禁用。

如何記錄在MySQL Server上運行的所有查詢?

要記錄在MySQL Server上運行的所有查詢,您可以啟用常規查詢日誌。該日誌捕獲服務器接收到的每個SQL語句,包括連接,斷開連接以及執行的所有查詢。這是正確設置它的方法。

如何記錄在MySQL Server上運行的所有查詢?

1。啟用一般查詢日誌

默認情況下禁用常規查詢日誌。您可以使用SQL命令動態啟用它(不重新啟動mySQL):

設置global general_log ='on';

要指定日誌文件(如果要控制位置,可選):

如何記錄在MySQL Server上運行的所有查詢?
設置Global General_log_file ='/var/log/mysql/mysql-general.log';

⚠️注意:路徑必須由MySQL過程寫作,並且目錄應該存在。

另外,您可以通過MySQL配置文件( my.cnf或Windows上的my.ini )永久啟用它:

如何記錄在MySQL Server上運行的所有查詢?
 [mysqld]
常規_log = 1
常規_log_file =/var/log/mysql/mysql-general.log

編輯配置文件後,重新啟動mysql:

 sudo systemctl重新啟動mysql

2。檢查當前記錄狀態

驗證是否啟用了常規日誌:

顯示諸如“ eneral_log”之類的變量;

查看日誌寫在哪裡:

顯示“常規_log_file”之類的變量;

您也可以使用以下方式檢查日誌輸出目標

顯示“ log_output”之類的變量;

3。了解日誌輸出目標( log_output

MySQL可以將日誌寫入文件數據庫表(例如mysql.general_log )。檢查當前設置:

顯示“ log_output”之類的變量;
  • 如果是FILE ,則將日誌轉到general_log_file指定的文件。
  • 如果是TABLE ,則將日誌存儲在mysql.general_log表中。
  • 它也可以是NONE ,可以禁用記錄。

要將輸出更改為文件(建議進行性能):

設置全局log_output ='file';

或使用表(可通過SQL查詢日誌有用):

設置全局log_output ='table';

然後,您可以檢查日誌:

選擇 *從mysql.general_log訂單by Event_time disc limit 100;

⚠️警告:使用表輸出會影響高負載下的性能。


4。績效和安全考慮

  • 性能:一般日誌可以快速生成大量數據。不建議將其長期保持生產系統的啟用。
  • 安全性:日誌可能包含敏感數據(查詢中的密碼,用戶數據)。確保適當的文件權限並考慮對數旋轉。
  • 旋轉:在Linux上使用logrotate來管理日誌文件大小。

示例logrotate config( /etc/logrotate.d/mysql-general ):

 /var/log/mysql/mysql-general.log {
    日常的
    失踪
    旋轉7
    壓縮
    延遲compress
    通知
    創建640 mysql mysql
    共享訂閱
    後脈
        測試-x/usr/bin/mysqladmin ||出口0
        myadmin =“/usr/bin/mysqladmin -defaults-file =/etc/mysql/debian.cnf”
        如果[-f/var/run/mysqld/mysqld.pid];然後
            $ Myadmin齊平
        fi
    端目
}

旋轉後,您可能需要沖洗日誌:

沖洗日誌;

5。替代:緩慢查詢日誌(用於性能調整)

如果您僅對慢速或效率低下的查詢感興趣,請改用慢速查詢日誌

 [mysqld]
slow_query_log = 1
slow_query_log_file =/var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 0

它的開銷要少得多,並且更適合生產監測。


簡而言之:使用general_log = ON with log_output = FILE以進行完整查詢日誌記錄,但要謹慎對待性能和數據敏感性。不需要時將其關閉。

基本上,啟用很簡單 - 但您不想永遠留下的東西。

以上是如何記錄在MySQL Server上運行的所有查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1605
29
PHP教程
1510
276
使用SSL/TLS加密保護MySQL連接 使用SSL/TLS加密保護MySQL連接 Jul 21, 2025 am 02:08 AM

為什麼需要SSL/TLS加密MySQL連接?因為不加密的連接可能導致敏感數據被截取,啟用SSL/TLS可防止中間人攻擊並滿足合規要求;2.如何為MySQL配置SSL/TLS?需生成證書和私鑰,修改配置文件指定ssl-ca、ssl-cert和ssl-key路徑並重啟服務;3.客戶端連接時如何強制使用SSL?通過創建用戶時指定REQUIRESSL或REQUIREX509實現;4.SSL配置容易忽略的細節包括證書路徑權限、證書過期問題以及客戶端配置需求。

如何將Excel連接到MySQL數據庫 如何將Excel連接到MySQL數據庫 Jul 16, 2025 am 02:52 AM

連接Excel到MySQL數據庫的方法有三種:1.使用PowerQuery:安裝MySQLODBC驅動後,通過Excel內置的PowerQuery功能建立連接並導入數據,支持定時刷新;2.使用MySQLforExcel插件:官方插件提供友好界面,支持雙向同步和表格導回MySQL,需注意版本兼容性;3.使用VBA ADO編程:適合高級用戶,通過編寫宏代碼實現靈活連接與查詢。根據需求和技術水平選擇合適方法,日常使用推薦PowerQuery或MySQLforExcel,自動化處理則選VBA更佳。

將MySQL部署自動化為代碼 將MySQL部署自動化為代碼 Jul 20, 2025 am 01:49 AM

要實現MySQL部署自動化,關鍵在於選用Terraform定義資源、Ansible管理配置、Git進行版本控制,並強化安全與權限管理。 1.使用Terraform定義MySQL實例,如AWSRDS的版本、類型、訪問控制等資源屬性;2.通過AnsiblePlaybook實現數據庫用戶創建、權限設置等細節配置;3.所有配置文件納入Git管理,支持變更追踪與協作開發;4.避免硬編碼敏感信息,使用Vault或AnsibleVault管理密碼,並設置訪問控制與最小權限原則。

MySQL撤銷用戶的特權 MySQL撤銷用戶的特權 Jul 16, 2025 am 03:56 AM

要使用REVOKE回收MySQL用戶權限,需按格式指定權限類型、數據庫和用戶。 1.回收全部權限用REVOKEALLPRIVILEGES,GRANTOPTIONFROM'用戶名'@'主機名';2.回收特定數據庫權限用REVOKEALLPRIVILEGESONmydb.FROM'用戶名'@'主機名';3.回收全局權限用REVOKE權限類型ON.*FROM'用戶名'@'主機名';注意執行後建議刷新權限,權限範圍需與授權時一致,且不能回收不存在的權限。

如何在MySQL中創建樞軸表 如何在MySQL中創建樞軸表 Jul 21, 2025 am 01:47 AM

在MySQL中實現類似Excel透視表功能的方法主要包括使用CASE或IF語句配合聚合函數進行行轉列。 1.使用CASEWHEN實現靜態行轉列,適用於已知需轉換的列值的情況,通過SUM(CASEWHEN...)對不同值生成新列並彙總數據;2.動態生成列,適用於不確定具體值的情況,需先獲取唯一值再構建CASE表達式,通常結合存儲過程或應用層邏輯拼接並執行SQL字符串;3.使用IF函數簡化語法,實現與CASE相同的效果但寫法更緊湊;實際應用中若維度固定可直接硬編碼列,若維度變化頻繁則建議用腳本或存儲過

如何在MySQL中審核數據庫活動? 如何在MySQL中審核數據庫活動? Aug 05, 2025 pm 01:34 PM

UseMySQLEnterpriseAuditPluginifonEnterpriseEditionbyenablingitinconfigurationwithserver-audit=FORCE_PLUS_PERMANENTandcustomizeeventsviaserver_audit_events;2.Forfreealternatives,usePerconaServerorMariaDBwiththeiropen-sourceauditpluginslikeaudit_log;3.

故障排除常見的mysql複製錯誤 故障排除常見的mysql複製錯誤 Jul 17, 2025 am 02:11 AM

MySQL主從復制問題常見於連接異常、數據不一致、GTID或binlog錯誤及復制延遲。 1.檢查主從連接是否正常,確保網絡通、權限對、賬號密碼正確;2.排查數據不一致導致的複制失敗,查看錯誤日誌,必要時跳過錯誤並使用工具校驗一致性;3.處理GTID或binlog問題,確保主庫未清理所需事務日誌,正確配置GTID模式;4.優化複製延遲,提升從庫性能,啟用並行複制,減少從庫負載。遇到問題應優先查看SHOWSLAVESTATUS輸出並分析日誌定位根源。

優化MySQL用於財務數據存儲 優化MySQL用於財務數據存儲 Jul 27, 2025 am 02:06 AM

MySQL用於金融系統需優化四個關鍵點:1.金融數據必須使用DECIMAL類型確保精度,時間字段使用DATETIME避免時區問題;2.索引設計要合理,避免頻繁更新字段建索引,組合索引按查詢順序排列並定期清理無用索引;3.使用事務確保一致性,控制事務粒度,避免長事務和非核心操作嵌入其中,並根據業務選擇合適隔離級別;4.對歷史數據按時間分區、歸檔冷數據並使用壓縮表,提升查詢效率並優化存儲。

See all articles