2016-10-02 5 views
-1

Après avoir essayé d'activer le mode de requête lente MySQL fournie par le mode d'emploi (http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_slow_query_log_file) et d'autres réponses (How do I enable the MySQL slow query log?), tous échouent pour différents messages d'erreur:activer MySQL log de requêtes lentes dans 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) Quand je suis le manuel utilisateur MySQL pour l'option de ligne de commande, le message d'erreur suivant apparaît sur:

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

assez frustrant. Est-ce qu'un gourou pourrait éclairer?

Répondre

0

Puisque SETs sera perdu si le serveur tombe en panne, il n'est pas pratique de le faire comme vous le décrivez.

Certains SETs doivent être configurés par l'utilisateur « root » privilégiée (ou un autre utilisateur avec SUPER privilège

Il serait préférable de faire les choses de cette façon.

Modifier le fichier de configuration (éventuellement /etc/my.cnf) avec

(ou choisir un autre chemin statique et nom de fichier)

Ensuite, pour "cycle" du journal, ont une tâche cron

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

Idée intéressante! A propos de la partie travail cron, que signifient les "logs de vidage"? – Chubaka

+0

En outre, en suivant vos paramètres dans /etc/mysql/my.cnf, il n'y a plus de message d'erreur. Cependant, aucun fichier slow.log n'est généré pour des raisons inconnues. Pourriez-vous éclairer? – Chubaka

+0

Vous avez redémarré 'mysqld'? 'FLUSH LOGS' ferme et rouvre divers fichiers journaux; Je pense que le journal lent est inclus. Ceci, plus le 'mv', affectera le cyclisme. Des messages pertinents dans mysqld.err ou mysql.log? –