繁体   English   中英

在 MySQL 5.5 中激活 MySQL 慢查询日志

[英]activate MySQL slow query log in MySQL 5.5

在尝试激活用户手册提供的 MySQL 慢查询模式 ( http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_slow_query_log_file ) 和其他答案后 ( How do I enable MySQL 慢查询日志? ),它们都因不同的错误消息而失败:

(1)  mysql -h ${SERVER_NAME} -B -N -P ${PORT_NAME} -u ${USER_NAME} --password=${PASSWORD} -e "

    set global slow_query_log = 'ON';

    SET global slow_query_log_file=$HOME/slow-query-log-CLIENT-${CLIENT_ID}-YEARLY-${Local_time}.log;

    SELECT * FROM WHATEVER;"

ERROR 1227 (42000) at line 3: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

(2)  mysql -h ${SERVER_NAME} -B -N -P ${PORT_NAME} -u ${USER_NAME} --password=${PASSWORD} -e "

    set global slow_query_log = 'ON';

    SET global slow_query_log_file=$HOME/slow-query-log-CLIENT-${CLIENT_ID}-YEARLY-${Local_time}.log;

    SET global log_output=/home/user;

ERROR 1227 (42000) at line 3: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

(3)当我按照MySQL用户手册进行命令行选项操作时,弹出如下错误信息:

mysql -h ${SERVER_NAME} -B -N -P ${PORT_NAME} -u ${USER_NAME} --password=${PASSWORD} -e --slow_query_log --slow_query_log_file=SLOW-CLIENT-${CLIENT_ID}-${Local_time} --global log_output=/home/user "

mysql: unknown variable 'slow_query_log_file='

很令人沮丧。 有上师可以开悟吗?

由于如果服务器崩溃, SETs将丢失,因此按照您描述的方式进行操作是不切实际的。

某些SETs需要由特权“root”用户(或其他具有SUPER特权的用户)设置。

这样做会更好:

更改配置文件(可能是/etc/my.cnf

long_query_time = 1
slow_query_log = ON
slow_query_log_file = /usr/mysql/slow.log

(或选择其他一些静态路径和文件名)

然后,为了“循环”日志,有一个 cron 工作

cd /usr/mysql
mv slow.log some-fabricated-name
mysql ... -e "flush logs"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM