我安装了一个新的带有 mysql 的 Ubuntu 18.04 服务器,并且每天都会通过电子邮件收到以下错误:
Cron <root@www> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
/etc/cron.daily/logrotate:
error: error running shared postrotate script for '/var/log/mysql.log /var/log/mysql/*log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
我该如何修复这个错误?
答案1
我的用户密码debian-sys-maint
不正确。我使用以下方法更新了密码:
update user set authentication_string=password("<password>") where user="debian-sys-maint";
答案2
不管怎么说,在我的情况下,这个错误是由于在 mysql 启动完成之前运行了 postrotate 脚本而导致的。只需将 logrotate.timer 或 cron 作业延迟(例如 60 秒),问题就解决了。
答案3
对我来说,更改 debian-sys-maint 的密码并不能解决问题。我在阅读“man mysqladmin”后找到了解决方案。其中对选项 --defaults-file 的描述如下:
Exception: Even with --defaults-file client programs read .mylogin.cnf.
命令mysql_config_editor print
显示
[client]
user = root
host = localhost
由于这推翻了 --defaults-file 中的内容,因此身份验证失败。文件 /root/.mylogin.cnf 可能是几个月前我在尝试熟悉 mysql_config_editor 时创建的。
删除 /root/.mylogon.cnf 可以解决我的问题。