我已经看过许多类似的问题,但我似乎无法找到答案。我想为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'
这里的任何帮助都非常感谢。
答案 0 :(得分:3)
SET GLOBAL slow_query_log=1;
慢速查询日志包含最长long_query_time
秒完成查询的日志事件。例如,最多10秒钟即可完成。要查看当前设置的时间阈值,请发出以下命令:
SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
| 10.000000 |
+-------------------+
可以在my.cnf
或my.ini
文件中将其设置为GLOBAL变量。或者它可以通过连接设置,虽然这是不寻常的。该值可以设置在0到10(秒)之间。有什么价值?
可以打开或关闭慢速查询的捕获。并且还指定了记录到的文件。下面将介绍这些概念:
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 文件的末尾。 ..