J’ai un VPS qui tourne sous DEBIAN 9 Stretch qui héberge mon site web. J’ai installé Exim4 pour pouvoir envoyer des mails à partir de mon site et tout marche très bien. Néanmoins, depuis que je l’ai installé, je recois CHAQUE JOUR un mail de “Cron Daemon” avec l’adresse que j’ai paramétré.
Le contenu du message (qui diffère parfois mais à 90% des cas c’est celui là):
/etc/cron.daily/logrotate:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
/etc/cron.daily/man-db:
/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct
Je ne sais pas d’où ca vient (je suis vraiment noob niveau service de messagerie)…
Voila tout ce que j’ai pour installer exim4 et le paramétrer:
sudo su
apt-get update && apt-get install exim4
nano /etc/aliases
(j’ai rajouté aux dernières lignes
root: user1
user1: contact@mon_nom_de_domaine.be
Ensuite enregistrer et quitter
nano /etc/email-addresses
Rajouter à la fin:
root: contact@mon_nom_de_domaine.be
user1: contact@mon_nom_de_domaine.be
dpkg-reconfigure exim4-config
Là j’ai mis en mode interne
Je sais que dans ma config il y a quelque chose qui va pas mais quoi? Et quelles sont les commandes pour tout changer?
Salut
cron envoie un mail de résultat à root c’est tout a fait normal
En l’occurrence dans ton cas il s’agit du script quotidien logrotate
logrotate permet de compresser et garder uniquement un certains nombre de fichiers journaux
les définitions sont dans /etc/logrotate.d/
apparement celui qui te pose problème est celui qui gère la base de donneés
/etc/cron.daily/man-db qui a un soucis avec les variables d’environnement LC_* et $LANG
Et pour être précis, ça ne vient pas d’exim ni de son installation, c’est juste que maintenant que tu as exim, tu reçois le mail qui te signale ce problème sur mandb et mysql (aussi).
La bonne nouvelle, c’est que ça ne t’a pas gêné jusqu’ici.
Alors en fait, tu n’as pas de problème réel avec crontab et exim4, tu reçois juste grace à exim4 un lot de warnings et/ou d’erreurs que tu ignorais auparavant.
Il faudrait idéalement faire deux nouveaux fils pour les deux problémes, du genre:
1/« connection mysql admin en localhost impossible »
pour traiter:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '
Là il faudrait quelqu’un de meilleur que moi pour t’aider à diagnostiquer simplement, je ne sais pas trop où chercher comme ça.
2/« problème de locale sur mandb »
pour traiter:
/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct
Ca, ça doit pouvoir se règler en faisant un dpkg-reconfigure locales en root pour recompiler et sélectionner les locale (langue) que ton systéme utilise.
Sinon, plus simple, tu installes le paquet locales-all (ça bouffe 118Mo)
Ce qui est super bizarre, c’est que j’ai suivi toutes les instructions. Je trouve que dans le fichier, il me dit qu’il n’y a pas de mot de passe. Quand je fais mysql -u root -p et qu’il me demande un password, j’appuie juste Enter et il me dit que le mot de passe est faux
Dans quel fichier ? /etc/mysql/debian.cnf ?
Attention, ce n’est pas ce fichier qui définit les comptes et les mots de passe de mysql. Ce fichier sert juste à fournir les paramètres de connexion aux scripts debian qui ont besoin de se connecter aux bases mysql, si j’ai bien compris. Je ne pense pas que ton mysql soit configuré pour qu’on puisse se connecter au rôle root sans mot de passe.
Il faut:
Que tu retrouves le mot de passe du rôle mysql ‹ root ›@‹ localhost › (attention, ce n’est pas le compte root de ton système d’exploitation, mais bien le compte root de mysql). Si tu ne l’as plus, utilise sudo dpkg-reconfigure mysql-server, tu pourras définir un nouveau mot de passe. C’est le mot de passe que tu devras fournir en faisant mysql -u root -p
Que tu regardes quel rôle de mysql est utilisé par le script /etc/logrotate.d/mysql-server (visiblement pour l’instant c’est root dans ta configuration, mais ça paraît étrange de devoir inscrire un mot de passe aussi capital en clair dans un fichier de configuration)