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

在MySQL 5.5中激活MySQL慢速查询日志,mysql,mysql-slow-query-log,Mysql,Mysql Slow Query Log,在尝试激活用户手册()和其他答案()提供的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-${

在尝试激活用户手册()和其他答案()提供的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='

相当令人沮丧。任何大师都能启发我们吗?

因为如果服务器崩溃,
集将丢失,所以按照您描述的方式执行是不实际的

某些
集合
需要由特权“root”用户(或具有
超级
特权的其他用户)设置

这样做会更好:

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

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

然后,要“循环”日志,请执行cron作业

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

有趣的想法!关于cron作业部分,“刷新日志”是什么意思是?另外,通过遵循您在/etc/mysql/my.cnf中的设置,没有更多的错误消息。但是,由于未知的原因,没有生成任何slow.log。您能说明一下吗?您确实重新启动了
mysqld
FLUSH LOGS
关闭并重新打开各种日志文件;我认为包含了slow log。这一点,加上
mv
,将影响循环。mysqld.err或mysql.log中是否有相关消息?
cd /usr/mysql
mv slow.log some-fabricated-name
mysql ... -e "flush logs"