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

/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脚本目前是错误的。