MySQL查看操作記錄幾種常用的方法
MySQL 提供了多種方式來查看數(shù)據(jù)庫操作記錄,以下是幾種常用的方法:
1. 通用查詢?nèi)罩?(General Query Log)
通用查詢?nèi)罩居涗浟怂蠱ySQL服務器接收到的SQL語句,包括連接和斷開連接的信息。
啟用方法:
-- 查看當前狀態(tài) SHOW VARIABLES LIKE 'general_log%'; -- 啟用通用查詢?nèi)罩? SET GLOBAL general_log = 'ON'; -- 設置日志文件路徑(可選) SET GLOBAL general_log_file = '/var/log/mysql/mysql-general.log';
查看日志:
cat /var/log/mysql/mysql-general.log
注意:生產(chǎn)環(huán)境不建議長期開啟,會影響性能。
2. 二進制日志 (Binary Log)
二進制日志記錄所有更改數(shù)據(jù)的SQL語句(DDL和DML),用于復制和恢復。
查看方法:
-- 查看是否啟用 SHOW VARIABLES LIKE 'log_bin'; -- 查看所有二進制日志文件 SHOW BINARY LOGS; -- 查看特定二進制日志內(nèi)容 SHOW BINLOG EVENTS IN 'mysql-bin.000001';
使用mysqlbinlog工具:
mysqlbinlog /var/lib/mysql/mysql-bin.000001
3. 慢查詢?nèi)罩?nbsp;(Slow Query Log)
記錄執(zhí)行時間超過指定閾值的SQL語句。
啟用方法:
-- 查看當前狀態(tài) SHOW VARIABLES LIKE 'slow_query%'; -- 啟用慢查詢?nèi)罩? SET GLOBAL slow_query_log = 'ON'; -- 設置慢查詢閾值(秒) SET GLOBAL long_query_time = 2; -- 設置日志文件路徑 SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
4. 審計日志 (Enterprise Audit Log)
MySQL企業(yè)版提供審計功能,社區(qū)版可以通過插件實現(xiàn):
安裝審計插件:
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
5. 查看歷史命令
對于當前會話執(zhí)行的命令:
-- 查看當前會話<a rel="external nofollow" target="_blank">執(zhí)行</a>過的SQL SELECT * FROM performance_schema.events_statements_history WHERE thread_id = PS_CURRENT_THREAD_ID();
6. 使用information_schema和performance_schema
-- 查看最近執(zhí)行的語句 SELECT * FROM performance_schema.events_statements_history_long ORDER BY EVENT_ID DESC LIMIT 10; -- 查看連接歷史 SELECT * FROM performance_schema.events_waits_history_long WHERE EVENT_NAME LIKE 'wait/io/socket%';
7. 查看MySQL歷史文件(客戶端)
MySQL客戶端會記錄執(zhí)行過的命令:
cat ~/.mysql_history
注意事項
日志記錄會影響性能,生產(chǎn)環(huán)境應謹慎使用
日志文件會占用磁盤空間,需要定期清理
敏感操作日志應妥善保管
MySQL 8.0在性能監(jiān)控方面有顯著增強
日志文件位置
Linux系統(tǒng)通常位于:
/var/log/mysql/Windows系統(tǒng)通常位于MySQL安裝目錄的data文件夾中
根據(jù)您的具體需求選擇合適的日志記錄方式,對于安全審計建議使用審計插件,對于性能優(yōu)化建議使用慢查詢?nèi)罩尽?/p>
總結(jié)
到此這篇關于MySQL查看操作記錄幾種常用的方法的文章就介紹到這了,更多相關MySQL查看操作記錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL 查找價格最高的圖書經(jīng)銷商的幾種SQL語句
不同的圖書,在不同的經(jīng)銷商的價格不同,我們這里要找到每種圖書最高的經(jīng)銷商是誰? 找最低的類似了。2009-07-07
xtrabackup備份還原MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了xtrabackup備份還原MySQL數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
MySQL的Query?Cache和PostgreSQL的pg_prewarm詳解
MySQL?QueryCache(已廢棄)緩存SQL結(jié)果,依賴全匹配且數(shù)據(jù)不變,高并發(fā)寫時性能差;PostgreSQL?pg_prewarm預加載數(shù)據(jù)頁至共享緩沖區(qū),提升冷啟動效率,需手動維護,建議用應用層緩存或InnoDB?BufferPool替代2025-07-07
MySQL中JSON_ARRAYAGG和JSON_OBJECT函數(shù)功能和用法
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它可以用來存儲和表示結(jié)構(gòu)化的數(shù)據(jù),在MySQL數(shù)據(jù)庫中,JSON格式的數(shù)據(jù)處理已經(jīng)變得越來越常見,本文將深入探討這兩個函數(shù)的用途、語法和示例,以幫助您更好地理解它們的功能和用法,需要的朋友可以參考下2023-09-09

