运行 mysql 共享 postrotate 脚本时出错

运行 mysql 共享 postrotate 脚本时出错

我安装了一个新的带有 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

我认为我发现了问题https://serverfault.com/questions/325171/debian-mysql-error-running-shared-postrotate-script-for-var-log-mysql-log

我的用户密码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 可以解决我的问题。

相关内容