Je suis nouveau sur Linux et j'ai installé un VPS sous Ubuntu 16.04 avec postfix, dovecot et rouncube en utilisant mariadb pour la base de données. Tout semble bien fonctionner, mais je reçois régulièrement le courriel suivant:
/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
J'ai effectué des recherches et trouvé un message suggérant de créer un fichier /root/.my.cnf que j'ai créé et que j'ai redémarré depuis le serveur, etc., mais je reçois toujours l'erreur. Le contenu de mon/racine/my.cnf est le suivant:
[mysqladmin]
password = *mypassword*
user = root
[mysql]
password = *mypassword*
Est-ce que quelqu'un sait s'il manque quelque chose ou quoi que ce soit que je dois configurer pour pouvoir utiliser le mot de passe mysql?
Merci
Cela pourrait être un bug dans la configuration "stock" lors de l'utilisation de mariadb par opposition à mysql qui n'a pas encore été supprimé, car je me souviens vaguement d'avoir rencontré quelque chose de similaire moi-même lorsque je suis passé de mariadb à mysql.
Vous voudrez regarder dans /etc/logrotate.d/mysql-server
pour voir ce qui se passe chez postrotate. Vous aurez probablement quelque chose comme ça:
test -x /usr/bin/mysqladmin || exit 0
if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
# If this fails, check debian.conf!
mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
fi
Ubuntu cherche probablement là-bas, alors essayez de regarder dans /etc/mysql/debian.cnf
et de voir ce qui est défini.
AvatarKava nous indique la bonne direction et sa réponse fonctionnera pour la plupart des gens. Si vous vous grattez encore la tête après avoir ajouté un utilisateur et un mot de passe au fichier /etc/mysql/debian.cnf
(même s'il indique de ne pas toucher ce fichier, haha!), Alors:
surtout s'il y a des caractères spéciaux dans votre mot de passe.
Un autre hack consiste à supprimer l’option --defaults-file=/etc/mysql/debian.cnf
de la commande mysqladmin dans /etc/logrotate.d/mysql-server
. Si vous supprimez cette option, l'utilisateur root (l'utilisateur qui exécute logrotate) aura toujours besoin d'un nom d'utilisateur et d'un mot de passe valides pour se connecter à mysql. Assurez-vous de disposer du fichier .my.cnf approprié dans/root. Dans les deux cas, les modifications apportées à debian.cnf ou à mysql-server pourraient être écrasées lors de la prochaine mise à niveau de MariaDB, mais comme AvatarKava le souligne, vous serez probablement invité à le faire avant que la mise à niveau écrase ces fichiers. Dans le pire des cas, vous rencontrerez à nouveau des erreurs logrotate après la mise à niveau et devrez apporter les mêmes modifications à nouveau.