mysql查看數據庫操作記錄


MySQL的查詢日志記錄了所有MySQL數據庫請求的信息。無論這些請求是否得到了正確的執行。默認文件名為hostname.log。默認情況下MySQL查詢日志是關閉的。生產環境,如果開啟MySQL查詢日志,對性能還是有蠻大的影響的。另外很多時候,MySQL慢查詢日志基本可以定位那些出現性能問題的SQL,所以MySQL查詢日志應用的場景其實不多,有點雞肋的感覺,它跟SQL Server中的profiler有點類似,但是這個不能跟蹤某個會話、用戶、客戶端。它只能對整個數據庫進行跟蹤。
window 環境下
  • 找到my.ini,在下面添加:
    log=存放日志的路徑/my.log
  • 保存文件,重啟mysql服務,之后就可以在對應目錄的下找到my.log文件。
linux環境下
    • MySQL中的參數general_log用來控制開啟、關閉MySQL查詢日志,參數general_log_file用來控制查詢日志的位置。所以如果你要判斷MySQL數據庫是否開啟了查詢日志,可以使用下面命令。general_log為ON表示開啟查詢日志,OFF表示關閉查詢日志。
    • mysql> show variables like '%general_log%';
      +------------------+------------------------------+
      | Variable_name    | Value                        |
      +------------------+------------------------------+
      | general_log      | OFF                          |
      | general_log_file | /var/lib/mysql/DB-Server.log |
      +------------------+------------------------------+
      2 rows in set (0.00 sec)
      mysql> 
      • 另外,MySQL的查詢日志支持寫入文件或寫入數據表兩種形式,這個由參數log_output控制,如下所示:
      • mysql> show variables like 'log_output';
        +---------------+-------+
        | Variable_name | Value |
        +---------------+-------+
        | log_output    | FILE  |
        +---------------+-------+
        1 row in set (0.00 sec)
         
        mysql> 
        • 1、開啟MySQL查詢日志
        mysql> set global general_log = on; Query OK, 0 rows affected (0.11 sec)  mysql> show variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | ON | +---------------+-------+ 1 row in set (0.02 sec)  mysql>
        • 2:關閉MySQL查詢日志
        mysql> show variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | ON | +---------------+-------+ 1 row in set (0.01 sec) mysql> set global general_log=off; Query OK, 0 rows affected (0.01 sec) mysql> show variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | OFF | +---------------+-------+ 1 row in set (0.00 sec) mysql> 
        • 3:設置日志輸出方式為表(如果設置log_output=table的話,則日志結果會記錄到名為gengera_log的表中,這表的默認引擎是CSV):
        mysql> show variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ 1 row in set (0.00 sec)  mysql> set global log_output='table'; Query OK, 0 rows affected (0.00 sec)  mysql> show variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | TABLE | +---------------+-------+ 1 row in set (0.01 sec)  mysql>
        • 4.查看查詢日志信息。
        mysql> select * from mysql.general_log;
        +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
        | event_time          | user_host                 | thread_id | server_id | command_type | argument                         |
        +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
        | 2017-07-06 12:32:05 | root[root] @ localhost [] |         1 |         1 | Query        | show variables like 'general%'   |
        | 2017-07-06 12:32:28 | root[root] @ localhost [] |         1 |         1 | Query        | show variables like 'log_output' |
        | 2017-07-06 12:32:41 | root[root] @ localhost [] |         1 |         1 | Query        | select * from MyDB.test          |
        | 2017-07-06 12:34:36 | [root] @ localhost []     |         3 |         1 | Connect      | root@localhost on                |
        | 2017-07-06 12:34:36 | root[root] @ localhost [] |         3 |         1 | Query        | KILL QUERY 1                     |
        | 2017-07-06 12:34:36 | root[root] @ localhost [] |         3 |         1 | Quit         |                                  |
        | 2017-07-06 12:34:51 | root[root] @ localhost [] |         1 |         1 | Query        | select * from mysql.general_log  |
        +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
        7 rows in set (0.02 sec)
         
        mysql> 

         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM