日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL查询日志介绍

發布時間:2025/6/17 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL查询日志介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL查詢日志介紹

  MySQL的查詢日志記錄了所有MySQL數據庫請求的信息。無論這些請求是否得到了正確的執行。默認文件名為hostname.log。默認情況下MySQL查詢日志是關閉的。生產環境,如果開啟MySQL查詢日志,對性能還是有蠻大的影響的。另外很多時候,MySQL慢查詢日志基本可以定位那些出現性能問題的SQL,所以MySQL查詢日志應用的場景其實不多,有點雞肋的感覺,它跟SQL Server中的profiler有點類似,但是這個不能跟蹤某個會話、用戶、客戶端。它只能對整個數據庫進行跟蹤。MySQL查詢日志本身比較簡單,網上介紹的不多,官方資料也就那么短短一篇。

?

MySQL查詢日志配置

  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>

?

這三個參數general_log、 general_log_file、 log_output都是動態參數,可以隨時動態修改。

?

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>

?

查看查詢日志信息。

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>

?

4: 查詢日志歸檔

mysql> system mv /var/lib/mysql/DB-Server.log /var/lib/mysql/DB-Server.log.20170706mysql> system mysqladmin flush-logs -pEnter password:或者你在shell中執行下面命令[root@DB-Server mysql]# mv /var/lib/mysql/DB-Server.log /var/lib/mysql/DB-Server.log.20170706[root@DB-Server mysql]# mysqladmin flush-logs -pEnter password:

?

5: 修改查詢日志名稱或位置

mysql> show variables like 'general_log%'; +------------------+------------------------------+ | Variable_name | Value | +------------------+------------------------------+ | general_log | ON | | general_log_file | /var/lib/mysql/DB-Server.log | +------------------+------------------------------+ 2 rows in set (0.00 sec)mysql> set global general_log='OFF'; Query OK, 0 rows affected (0.00 sec)mysql> set global general_log_file='/u02/mysql_log.log'; Query OK, 0 rows affected (0.00 sec) mysql> set global general_log='ON'; Query OK, 0 rows affected (0.02 sec)

?

?

轉載:https://www.cnblogs.com/kerrycode/p/7130403.html

?

轉載于:https://www.cnblogs.com/starfish29/p/11587445.html

總結

以上是生活随笔為你收集整理的MySQL查询日志介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。