Logrotate error en MySQL

Tenía ya tiempo recibiendo a diario esta notificación en los logs:

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

Busqué en internet y todos los sitios mencionaban que la causa era que el password de la cuenta debian-sys-maint no era el que estaba indicado en el archivo /etc/mysql/debian.cnf (en Ubuntu):

[client]
host     = localhost
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Cambié el password en la base de datos, pero nada. Todo seguía igual. Y al revisar el hash antes y después de cambiar el password era exactamente el mismo, lo que quería decir que el password estaba bien.

Usando ping en mysqladmin

mysqladmin --defaults-file=/etc/mysql/debian.cnf ping

me di cuenta de que no se podía se conectar por problemas del socket. Entonces entendí qué estaba pasando: el directorio en donde el socket de MySQL se crea está especificado en my.cnf, y lo tengo definido como /tmp/mysqld.sock . Le puse ese valor al archivo arriba mencionado, volví a correr el proceso y todo funcionó a la perfección.

Lo anterior pasó porque primero instalé MySQL “a pie”, y recuerdo que cambié varias configuraciones; después, tuve que instalar MySQL usando apt y usé el mismo archivo de configuración. Eso fue lo que causó el problema.

¿Por qué instalé con apt si ya tenía todo configurado bien a mano? Porque lo que instalé por mi cuenta fue para hacer correr un sistema que tenía configuraciones y versiones del año del caldo, y para poder reproducir el comportamiento original tenía que tener exactamente la misma configuración. Afortunadamente eso ya quedó en el pasado y no lo necesito más.