MySQL écrit des journaux d'erreurs fous

王林
Libérer: 2024-02-18 17:00:23
avant
1199 Les gens l'ont consulté

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!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!