crontab para limpieza y copia de seguridad de bases de datos mysql

crontab para limpieza y copia de seguridad de bases de datos mysql

En mi cuadro de OpenBSD tengo el siguiente crontab para el usuario _mysql

0 4 * * * /backup/mysql_backup/mysql_backup.sh
0 9 * * 1 mysql -uroot -pMySQLpassword -e "purge master logs before date_sub(now(),interval 5 day);"

El primero tenía como objetivo realizar una copia de seguridad de las bases de datos MySQL en este cuadro. Ahora me doy cuenta de que estos trabajos no se han ejecutado porque al usuario _mysql se le negó el permiso para conectarse (he confirmado que la contraseña del usuario _mysql es correcta).

Entonces, estoy pensando que debería tener estos trabajos en el crontab de un usuario diferente, pero ¿cuáles (supongo que no deberían estar en el crontab de root)? Entonces, estoy buscando sugerencias sobre cómo configurar esto. ¿O necesito cambiar mi configuración de MySQL?

Editar

El script está en el mismo servidor que la base de datos. Esta entrada de crontab falla con el error

connect(';host=localhost;mysql_read_default_group=mysqlhotcopy','',...) falló: acceso denegado para el usuario '_mysql'@'localhost' (usando contraseña: YES) en /usr/local/bin/mysqlhotcopy línea 178 aigaion_copy DBI

Respuesta1

Puede usar expire_logs_days=5 en su my.cnf para realizar la misma función que su segundo trabajo cron. Probablemente sea más confiable.

Respuesta2

El usuario del sistema que ejecuta el cronjob (_mysql) no debería importar en relación con el usuario que se conecta a la base de datos (raíz). Lo único sería el nombre de host/ip del servidor desde el que se conecta el script.

¿Está el script en el mismo servidor que la base de datos? ¿Cuál es el error exacto que aparece al intentar ejecutar los comandos?

Respuesta3

El usuario '_mysql'@'localhost' no tiene los permisos necesarios dentro de la base de datos según el mensaje de error publicado.

Debe otorgarle a este usuario los permisos necesarios o usar credenciales diferentes dentro de su script /backup/mysql_backup/mysql_backup.sh.

información relacionada