新聞中心

站在用戶的角度思考問題,與客戶深入溝通,找到銅官網(wǎng)站設(shè)計與銅官網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋銅官地區(qū)。
默認情況下,通用查詢?nèi)罩竟δ苁顷P(guān)閉的??梢酝ㄟ^以下命令查看通用查詢?nèi)罩臼欠耖_啟,命令如下:
mysql> SHOW VARIABLES LIKE '%general%'; +------------------+----------------------------------------------------------------+ | Variable_name | Value | +------------------+----------------------------------------------------------------+ | general_log | OFF | | general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log | +------------------+----------------------------------------------------------------+ 2 rows in set, 1 warning (0.01 sec)
從結(jié)果可以看出,通用查詢?nèi)罩臼顷P(guān)閉的,general_log_file 變量指定了通用查詢?nèi)罩疚募诘奈恢谩?br />
啟動和設(shè)置通用查詢?nèi)罩?/h2>
在 MySQL 中,可以通過在 MySQL 配置文件添加 log 選項來開啟通用查詢?nèi)罩?,格式如下?
[mysqld]
log=dir/filename
其中,dir 參數(shù)指定通用查詢?nèi)罩镜拇鎯β窂?;filename 參數(shù)指定日志的文件名。如果不指定存儲路徑,通用查詢?nèi)罩緦⒛J存儲到 MySQL 數(shù)據(jù)庫的數(shù)據(jù)文件夾下。如果不指定文件名,默認文件名為 hostname.log,其中 hostname 表示主機名。
查看通用查詢?nèi)罩?/h2>
如果希望了解用戶最近的操作,可以查看通用查詢?nèi)罩尽Mㄓ貌樵內(nèi)罩疽晕谋疚募男问酱鎯?,可以使用普通文本文件查看該類型日志?nèi)容。
例 1
首先我們查看通用查詢?nèi)罩竟δ苁欠袷情_啟狀態(tài),然后查詢 tb_student 表的記錄,SQL 命令和執(zhí)行過程如下:
mysql> SHOW VARIABLES LIKE '%general%'; +------------------+----------------------------------------------------------------+ | Variable_name | Value | +------------------+----------------------------------------------------------------+ | general_log | ON | | general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log | +------------------+----------------------------------------------------------------+ 2 rows in set, 1 warning (0.02 sec) mysql> use test; Database changed mysql> SELECT * FROM tb_student; +----+--------+ | id | name | +----+--------+ | 1 | Java | | 2 | MySQL | | 3 | Python | +----+--------+ 3 rows in set (0.06 sec)
執(zhí)行成功后,打開通用查詢?nèi)罩?,這里日志名稱為 LAPTOP-UHQ6V8KP.log,下面是通用查詢?nèi)罩局械牟糠謨?nèi)容。
C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe, Version: 5.7.29-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: MySQL
Time Id Command Argument
2020-05-29T06:43:44.382878Z 7 Quit
2020-05-29T06:44:10.001382Z 8 Connect root@localhost on using SSL/TLS
2020-05-29T06:44:10.007532Z 8 Query select @@version_comment limit 1
2020-05-29T06:44:11.748179Z 8 Query SHOW VARIABLES LIKE '%general%'
2020-05-29T06:44:25.487472Z 8 Query SELECT DATABASE()
2020-05-29T06:44:25.487748Z 8 Init DB test
2020-05-29T06:44:35.390523Z 8 Query SELECT * FROM tb_student
可以看出,該日志非常清晰地記錄了客戶端的所有行為。
停止通用查詢?nèi)罩?/h2>
通用查詢?nèi)罩締雍?,可以通過兩種方法停止該日志。一種是將 MySQL 配置文件中的相關(guān)配置注釋掉,然后重啟服務(wù)器,來停止通用查詢?nèi)罩尽>唧w內(nèi)容如下:
[mysqld]
#log=dir\filename
上述方法需要重啟 MySQL 服務(wù)器,這在某些場景,比如有業(yè)務(wù)量訪問的情況下是不允許的,這時可以通過另一種方法來動態(tài)地控制通用查詢?nèi)罩镜拈_啟和關(guān)閉。
設(shè)置 MySQL 的環(huán)境變量 general_log 為關(guān)閉狀態(tài)可以停止該日志,示例如下:
mysql> SET GLOBAL general_log=off;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE '%general_log%' \G
*************************** 1. row ***************************
Variable_name: general_log
Value: OFF
*************************** 2. row ***************************
Variable_name: general_log_file
Value: C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log
2 rows in set, 1 warning (0.01 sec)
刪除通用查詢?nèi)罩?/h2>
在 MySQL 中,可以使用 mysqladmin 命令來開啟新的通用查詢?nèi)罩尽P碌耐ㄓ貌樵內(nèi)罩緯苯痈采w舊的查詢?nèi)罩?,不需要再手動刪除了。
mysqladmin 命令的語法如下:
mysqladmin -uroot -p flush-logs
需要注意的是,如果希望備份舊的通用查詢?nèi)罩?,必須先將舊的日志文件拷貝出來或者改名。然后,再執(zhí)行 mysqladmin 命令。
除了上述方法之外,還可以手工刪除通用查詢?nèi)罩?。刪除之后需要重新啟動 MySQL 服務(wù)。重啟之后就會生成新的通用查詢?nèi)罩?。如果希望備份舊的日志文件,可以將舊的日志文件改名,然后重啟 MySQL 服務(wù)。
由于通用查詢?nèi)罩緯涗浻脩舻乃胁僮?,如果?shù)據(jù)庫的使用非常頻繁,通用查詢?nèi)罩緦加梅浅4蟮拇疟P空間,對系統(tǒng)性能影響較大。一般情況下,數(shù)據(jù)管理員可以刪除很長時間之前的通用查詢?nèi)罩净蜿P(guān)閉此日志,以保證 MySQL 服務(wù)器上的硬盤空間。
分享題目:MySQL通用查詢?nèi)罩荆℅eneralQueryLog)
文章起源:http://www.5511xx.com/article/cddeeie.html


咨詢
建站咨詢
