2016-10-02 93 views
-1

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

(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=' 

非常令人沮丧。任何大师能启发吗?

回答

0

由于SETs将在服务器崩溃时丢失,因此按照您描述的方式进行操作并不现实。

某些SETs需要由特权“根”用户(或其他用户提供SUPER权限设置

这将是最好做的事情是这样的:。

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

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

然后,以 “循环” 的日志,有cron作业

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

有趣的想法!关于cron作业部分,“flush logs”是什么意思? – Chubaka

+0

另外,通过在/etc/mysql/my.cnf中的设置,不再有错误消息。但是,没有任何由于未知原因而生成的slow.log。你能开导吗? – Chubaka

+0

你确实重新启动了'mysqld'? 'FLUSH LOGS'关闭并重新打开各种日志文件;我认为慢日志是包含在内的。这加上'mv',会影响骑行。 mysqld.err或mysql.log中的任何相关消息? –