使用 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 localhost
但在这里我得到了 MariaDB,它似乎与我以前见过的任何其他 answers/tutorials 都不一样。输入:
set log_slow_queries = ON;
给我错误
ERROR 1193 (HY000): Unknown system variable 'log_slow_queries'
SET GLOBAL slow_query_log=1;
慢速查询日志包含最多需要 long_query_time
秒才能完成的查询的日志事件。例如,最多 10 秒即可完成。要查看当前设置的时间阈值,请发出以下命令:
SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
| 10.000000 |
+-------------------+
可以在my.cnf
或my.ini
文件中设置为全局变量。或者它可以通过连接来设置,尽管这是不常见的。该值可以设置在 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 手册页 The Slow Query Log
注意:以上关于转on/off慢日志的信息在5.6(?)中被改变了;旧版本有另一种机制。
"best" 查看系统速度变慢的方法:
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 和 select 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 文件的....
我看过很多与此类似的问题,但似乎找不到答案。我想为我的 MySQL 数据库设置 slow query log
。我看到很多回答说我应该访问 MySQL 命令行工具。我不确定如何找到这个工具,但我尝试访问它:
c:/xampp/mysql/bin/mysql -u root -p -h localhost
但在这里我得到了 MariaDB,它似乎与我以前见过的任何其他 answers/tutorials 都不一样。输入:
set log_slow_queries = ON;
给我错误
ERROR 1193 (HY000): Unknown system variable 'log_slow_queries'
SET GLOBAL slow_query_log=1;
慢速查询日志包含最多需要 long_query_time
秒才能完成的查询的日志事件。例如,最多 10 秒即可完成。要查看当前设置的时间阈值,请发出以下命令:
SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
| 10.000000 |
+-------------------+
可以在my.cnf
或my.ini
文件中设置为全局变量。或者它可以通过连接来设置,尽管这是不常见的。该值可以设置在 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 手册页 The Slow Query Log
注意:以上关于转on/off慢日志的信息在5.6(?)中被改变了;旧版本有另一种机制。
"best" 查看系统速度变慢的方法:
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 和 select 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 文件的....