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

1。啟用一般查詢日誌
默認情況下禁用常規查詢日誌。您可以使用SQL命令動態啟用它(不重新啟動mySQL):
設置global general_log ='on';
要指定日誌文件(如果要控制位置,可選):

設置Global General_log_file ='/var/log/mysql/mysql-general.log';
⚠️注意:路徑必須由MySQL過程寫作,並且目錄應該存在。
另外,您可以通過MySQL配置文件( my.cnf
或Windows上的my.ini
)永久啟用它:

[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中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

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

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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