瞭解通用查詢日誌

dbhelper發表於2014-11-27

說明:MYSQL的日誌檔案分成幾種,通用查詢日誌便是其中的一種,通用查詢日誌可以用來記錄使用者的所有操作,包括啟動和關閉MYSQL伺服器、更新、查詢等語句;

由於開啟通用查詢日誌是記錄使用者的所有操作,在生產環境中這個日誌的量是非常大的,所以一般情況下都是不開啟的,myslq預設的該日誌功能也是關閉的,在特殊情況下才進行開啟;

 

一 、通用查詢日誌管理

1、狀態的檢視

mysql> show variables like 'general%';

+------------------+-----------------------+

| Variable_name | Value |

+------------------+-----------------------+

| general_log | OFF |

| general_log_file | /data/mysql/mysql.log |

+------------------+-----------------------+

2 rows in set (0.00 sec)

當前資料庫的通用查詢日誌狀態顯示為關閉,日誌路徑為"/data/mysql/mysql.log"

 

2、通用查詢日誌的管理

mysql> show variables like 'general%';

+------------------+-----------------------+

| Variable_name | Value |

+------------------+-----------------------+

| general_log | OFF | 關閉狀態

| general_log_file | /data/mysql/mysql.log | 預設路徑和命名方式

+------------------+-----------------------+

2 rows in set (0.00 sec)

mysql> set global general_log=1; /啟用指令碼

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'general%';

+------------------+-----------------------+

| Variable_name | Value |

+------------------+-----------------------+

| general_log | ON | 顯示已啟用

| general_log_file | /data/mysql/mysql.log |

+------------------+-----------------------+

2 rows in set (0.00 sec)

 

mysql> set global general_log_file='/data/mysql/mysql_1.log'; 修改預設名稱

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'general%';

+------------------+-------------------------+

| Variable_name | Value |

+------------------+-------------------------+

| general_log | ON |

| general_log_file | /data/mysql/mysql_1.log | 修改已生效

+------------------+-------------------------+

3、檢視通用管理日誌

準備工作,先做幾個查詢操作

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| retail |

| test |

+--------------------+

5 rows in set (0.01 sec)

mysql> use mysql

Database changed

mysql> select user,host,password from user;

+------+-----------+----------+

| user | host | password |

+------+-----------+----------+

| root | localhost | |

| root | mysql | |

| root | 127.0.0.1 | |

| root | ::1 | |

| | localhost | |

| | mysql | |

+------+-----------+----------+

6 rows in set (0.00 sec)

 

做了以上操作之後,檢視通用查詢日誌

[root@mysql mysql]# cat mysql_1.log

/usr/local/mysql/bin/mysqld, Version: 5.5.36-log (Source distribution). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time Id Command Argument

140829 11:36:58     1 Query    show variables like 'general%'

140829 11:37:04     1 Quit    

140829 11:41:13     2 Connect    root@localhost on

         2 Query    select @@version_comment limit 1

140829 11:41:26     2 Query    show databases

140829 11:41:29     2 Query    SELECT DATABASE()

         2 Init DB    mysql

140829 11:41:44     2 Query    select user,host,password from user

140829 11:42:23     2 Quit    

可以看到,剛才的所有操作都被記錄在日誌檔案中了。

 

4、刪除通用查詢日誌

很簡單,只有一條命令:mysqladmin flush-logs(經測試,沒有效果,直接在作業系統進行刪除。)

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN

ORACLE技術部落格:ORACLE 獵人筆記               資料庫技術群:367875324 (請備註ORACLE管理 )  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1349434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章