运行 /var/log/mysql.log 的共享 postrotate 脚本的 debian mysql 错误

Chr*_* H. 5 mysql debian

/etc/cron.daily/logrotate:

错误:为 /var/log/mysql.log /var/log/mysql/mysql.log 运行共享 postrotate 脚本时出错

/var/log/mysql/mysql-slow.log

运行部分:/etc/cron.daily/logrotate 退出并返回代码 1

Chr*_* H. 10

在 Debian 中,mysql 是通过 mysql 用户 'debian-sys-maint'@'localhost' 控制的。该用户的密码存储在/etc/mysql/debian.cnf 中

cat /etc/mysql/debian.cnf
Run Code Online (Sandbox Code Playgroud)

请注意此文件中使用的密码。如果您有 root 的密码(就像您应该的那样),您将需要使用以下命令进入 mysql。

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

否则,您只需输入“mysql”即可。在mysql>提示符下,运行以下命令。

GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'XXXXXXXXXXXX';
Run Code Online (Sandbox Code Playgroud)

/etc/mysql/debian.cnf中的密码代替 Xs。最后...

quit
Run Code Online (Sandbox Code Playgroud)

您现在应该能够使用以下命令重新启动 mysql 服务器而不会出现错误:

/etc/init.d/mysql restart
Run Code Online (Sandbox Code Playgroud)

但是,不需要重新启动。

  • 谢谢我,这个信息可以在互联网上找到,但最受欢迎的帖子说在 mysql 命令中放置短语 IDENTIFIED BY PASSWORD 而不是 IDENTIFIED BY。 (2认同)
  • 你欢迎其他我。疯狂的是,当您确实使用 IDENTIFIED BY PASSWORD 'testpass' 时,mysql 实际上会将用户的密码设置为纯文本中的 'testpass'!使对 'mysql' 表具有读访问权限的任何人都可以读取实际密码。这显然不好。所以谢谢你发布这个问题,它需要澄清。 (2认同)