使用XAMPP 5.6.21启用mysql慢查询日志

时间:2016-08-11 12:11:19

标签: mysql xampp error-log mysql-slow-query-log

我已经看过许多类似的问题,但我似乎无法找到答案。我想为slow query log数据库设置MySQL。我看到很多答案说我应该访问MySQL命令行工具。我不确定如何找到这个工具,但我尝试访问它:

  

c:/ xampp / mysql / bin / mysql -u root -p -h localhost

但是在这里我得到了MariaDB,这看起来与我以前见过的任何其他答案/教程不同。输入:

  

设置log_slow_queries = ON;

给我错误

  

ERROR 1193(HY000):未知的系统变量'log_slow_queries'

这里的任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:3)

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手册页The Slow Query Log

注意:上面有关开启/关闭慢速日志的信息在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

答案 1 :(得分:2)

转到 xampp控制面板,单击mysql的配置按钮,然后选择function LeagueBadge(props) { return ( <img src={props.badgeUrl} alt="missing alt text" /> ); } class LeagueInfo extends Component { constructor(props) { super(props); this.state = { amountOfPlayers: null, rpPerSecond: null, rpCost: null, }; } render() { return ( <div> <h4>{this.props.name} players: {this.props.amountOfPlayers}</h4> <h4>RP per second: {this.props.rpPerSecond}</h4> <h4>RP cost: {this.props.rpCost}</h4> </div> ); } } class League extends Component { render() { return ( <div> <LeagueBadge badgeUrl={this.props.badge} /> <LeagueInfo name={this.props.name} /> </div> ); } } class App extends Component { render() { return ( <div className="App"> <h1>Players</h1> <League name="Bronze" badge={ require('./bronze.png') }></League> <League name="Silver" badge={ require('./silver.png') }></League> <League name="Gold" badge={ require('./gold.png') }></League> <League name="Platinum" badge={ require('./platinum.png') }></League> <League name="Diamond" badge={ require('./diamond.png') }></League> <League name="Master" badge={ require('./master.png') }></League> <League name="Challenger" badge={ require('./challenger.png') }></League> </div> ); } } ,然后将这些行添加到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

然后在 xampp控制面板中重新启动MySQL服务器。现在 # 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 应该已启用,您可以通过在MySQL Shell中运行以下命令来确认它

slow_query_log

答案 2 :(得分:0)

这可能很明显,但我花了一些时间才意识到我的错误:在 my.ini 文件中,您应该将 slow_query_log 设置放在 [mysqld] 组中,而不是简单地放在 my.ini 文件的末尾。 ..