/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
在Debian中,mysql是通过mysql用户的'debian-sys-maint'@'localhost'进行控制的。 该用户的密码存储在/etc/mysql/debian.cnf中 。
cat /etc/mysql/debian.cnf
请注意在此文件中使用的密码。 如果你有一个root用户的密码(你应该像这样),你需要用下面的命令进入mysql。
mysql -u root -p
否则,你可以input'mysql'。 在mysql>提示符下,运行以下命令。
GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'XXXXXXXXXXXX';
用/etc/mysql/debian.cnf中的密码代替X. 最后…
quit
您现在应该可以使用以下命令无误地重新启动mysql服务器:
/etc/init.d/mysql restart
但是,重新启动不是必需的。
对于Debian 9(Stretch): debian-sys-maint用户不在了,所以解决的方法是摆脱/etc/logrotate.d/percona-xtradb-cluster-5.7中的debian.cnf (或者你用来提供MySQL的软件包,无论是mariadb还是mysql ):
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
应改为:
MYADMIN="/usr/bin/mysqladmin"
我不得不用Percona XtraDB集群来改变它,暂时还没有发布Debian Stretch,因此logrotate脚本目前是错误的。