/data/mysql8/data/mysql_db/mysql.log Enregistrez et quittez le mode édition."/> /data/mysql8/data/mysql_db/mysql.log Enregistrez et quittez le mode édition.">

Maison  >  Article  >  tutoriels informatiques  >  MySQL écrit des journaux d'erreurs fous

MySQL écrit des journaux d'erreurs fous

王林
王林avant
2024-02-18 17:00:231210parcourir

MySQL 狂写错误日志

Base de données cœur de métier, la version est MySQL 8.34
Community Server Edition. Depuis son lancement, le journal des erreurs de ce serveur de base de données a augmenté très rapidement (comme le montre la figure ci-dessous), atteignant une capacité de plus de 10 G
toutes les 24 heures.

Comme il y a une alarme de panne et qu'elle n'a pas affecté l'accès normal à l'entreprise, le personnel concerné n'est pas autorisé à redémarrer le service MySQL

. Face à cette situation, j'ai dû mettre en place une tâche planifiée automatique pour nettoyer ces logs à heure fixe chaque nuit. Pour des opérations spécifiques, exécutez "crontab -e"

sur la ligne de commande système et ajoutez la ligne de texte suivante :

00 01 * * * echo > /data/mysql8/data/mysql_db/mysql.logEnregistrez et quittez le mode édition. Si vous devez vérifier l'exactitude et la validité de la tâche, vous pouvez modifier l'heure d'exécution à un moment assez récent, puis comparer le fichier journal des erreurs "mysql.log

" avant et après. la taille d'exécution de la tâche et vérifiez le journal cron

pour voir si cette tâche planifiée a été exécutée, comme indiqué dans la figure ci-dessous.

C'est la fête du Printemps, tout le monde rentre chez lui pour fêter le Nouvel An, et c'est la période la plus basse pour les visites. Profitant de cette opportunité, j'ai l'intention de résoudre complètement ce problème. Demandez l'avis du personnel concerné et demandez s'il est possible de modifier le fichier d'options MySQL

pour bloquer les sorties d'avertissement inutiles ? La réponse a été "

Combien de temps faut-il pour redémarrer"
 ? La réponse : "
Quelques minutes suffisent"
.

Qu'est-ce que ce journal d'erreurs défini enregistre en grande quantité ? Ouvrez le gros fichier "mysql.log"

et constatez qu'il est plein de messages d'avertissement. Utilisez la commande système "tail -f mysql.log"

La sortie de l'écran roule comme un volant de moteur. Figure ci-dessous.

Ces messages d'avertissement indiquent que le compte utilisateur utilise "mysql_native_password" qui n'est pas cohérent avec la méthode d'authentification par défaut "

caching_sha2_password"
. La solution consiste soit à changer la méthode d'authentification par mot de passe de tous les comptes d'utilisateurs en "
caching_sha2_password"
, soit à ne pas enregistrer ces messages d'avertissement dans le fichier journal des erreurs "mysql.log". Puisqu'il existe de nombreux comptes d'utilisateurs et que plusieurs entreprises sont conçues, il est plus facile de ne pas enregistrer les messages d'avertissement. Ces messages d'avertissement sont de toute façon inutiles (laissez-les enregistrer de véritables journaux d'erreurs, ce qui facilitera le dépannage).


MySQL

Le système hôte Centos 7 où se trouve le serveur,

Ouvrez le fichier d'options "/etc/my.cnf"

dans l'éditeur de texte et ajoutez les lignes de texte suivantes dans le bloc de texte [mysqld
].


log-error-verbosity=1

Par défaut, la valeur de "log-error-verbosity"

de MySQL 8

est "3"

, ce qui signifie que toutes les "
erreurs, avertissements et commentaires"
seront enregistrées dans le journal des erreurs. Le chiffre « 2
» signifie enregistrer « les erreurs et les avertissements », tandis que le chiffre « 1
» signifie enregistrer uniquement les « erreurs ».


Il convient de noter qu'avant de modifier le fichier d'options, n'oubliez pas de sauvegarder d'abord le fichier. C'est du bon sens et un remède contre le regret. Après avoir vérifié qu'il n'y a pas d'erreurs d'écriture, redémarrez le service MySQL

, puis vérifiez si le service MySQL

local est normal, si la synchronisation maître-esclave à distance est normale et s'il y a un retard.



Après quelques minutes d'exécution, vérifiez le journal des erreurs de MySQL

pour voir s'il ne croît plus rapidement. Après avoir observé pendant un certain temps, il est effectivement vrai que les journaux d'avertissement MySQL ne sont plus enregistrés et que le taux de croissance des fichiers a également été considérablement réduit.



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer