簡體   English   中英

使用 XAMPP 5.6.21 啟用 mysql 慢查詢日志

[英]Enabling mysql slow query log using XAMPP 5.6.21

我看過很多與此類似的問題,但似乎找不到答案。 我想為我的 MySQL 數據庫設置slow query log 我看到很多答案都說我應該訪問 MySQL 命令行工具。 我不確定如何找到此工具,但我嘗試通過以下方式訪問它:

c:/xampp/mysql/bin/mysql -u root -p -h 本地主機

但是在這里我得到了 MariaDB,這似乎與我之前看到的任何其他答案/教程都不同。 輸入:

設置 log_slow_queries = ON;

給我錯誤

錯誤 1193 (HY000):未知系統變量“log_slow_queries”

SET GLOBAL slow_query_log=1;

慢查詢日志包含查詢最多需要long_query_time秒才能完成的日志事件。 例如,最多 10 秒即可完成。 要查看當前設置的時間閾值,請發出以下命令:

SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+

它可以在my.cnfmy.ini文件中設置為 GLOBAL 變量。 或者它可以由連接設置,盡管這是不尋常的。 該值可以設置在 0 到 10(秒)之間。 使用什么價值?

  • 10 高到幾乎沒用;
  • 2是妥協;
  • 0.5 和其他分數是可能的;
  • 0 捕獲一切; 這可能會以危險的速度快速填滿磁盤,但非常有用。

打開或關閉慢查詢的捕獲。 並且還指定了登錄的文件。 下面介紹了這些概念:

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file

SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)

有關更多信息,請參閱 MySQL 手冊頁慢查詢日志

注意:以上關於開啟/關閉slowlog的信息在5.6(?)有改動; 舊版本有另一種機制。

查看降低系統速度的“最佳”方法:

long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries.  Or mysqldumpslow -s t

轉到xampp 控制面板,單擊 mysql 的配置按鈕並選擇my.ini然后在my.ini文件中添加這些行

 slow_query_log = 1
 slow-query-log-file=/path/of/the/log/file.log

我把上面兩行放在log_error = "mysql_error.log" my.ini文件的修改部分應如下所示

    # The MySQL server
    [mysqld]
    port= 3306
    socket = "C:/xampp/mysql/mysql.sock"
    basedir = "C:/xampp/mysql" 
    tmpdir = "C:/xampp/tmp" 
    datadir = "C:/xampp/mysql/data"
    pid_file = "mysql.pid"
    # enable-named-pipe
    key_buffer = 16M
    max_allowed_packet = 1M
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    log_error = "mysql_error.log"
    slow_query_log = 1
    slow-query-log-file=/var/log/mysql-slow.log

然后在xampp 控制面板中重新啟動 MySQL 服務器。 現在應該啟用slow_query_log ,您可以通過在MySQL shell中運行以下命令來確認

show variables like '%slow%';

這可能很明顯,但我花了一些時間才意識到我的錯誤:在 my.ini 文件中,您應該將 slow_query_log 設置放在 [mysqld] 組中,而不是簡單地放在 my.ini 文件的末尾......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM