Message d'erreur récurrent sur Debian Jessie avec MariaDB

/etc/cron.daily/logrotate:
error: error running shared postrotate script for '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

est le message reçu ponctuellement sur une machine Debian Jessie équipée de MariaDB.

Après une petite recherche au sein des scripts de logrotate, je réalisais que cette ligne :

MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"

appelait la configuration placée dans /etc/mysql/debian.cnf qui ressemble à :

[client]
host     = localhost
user     = root
password = 
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = root
password =
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

On note bien l'absence de mot de passe pour l'utilisateur root qui explique la non-complétion du script de logrotate.

Pour régler temporairement le problème, on peut :

  • créer un utilisateur "debian-sys-maint" avec les droits administrateurs sur le serveur MariaDB
  • donner un mot de passe aléatoire à cet utilisateur
  • compléter le fichier /etc/mysql/debian.cnf de manière adéquate :
[client]
host     = localhost
user     = debian-sys-maint
password = motdepassealeatoire
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = motdepassealeatoire
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr