/etc/cron.daily/logrotate:
ошибка: ошибка запуска общего сценария постротации для /var/log/mysql.log /var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log
run-parts: /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
В противном случае вы можете просто ввести mysql. в mysql> подсказка, запустите следующее.
GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'XXXXXXXXXXXX';
Замените пароль, найденный в /etc/mysql/debian.cnf вместо Хз. И наконец...
quit
Теперь вы должны иметь возможность перезапустить сервер mysql без ошибок с помощью команды:
/etc/init.d/mysql restart
Однако перезагрузка не требуется.
В Ubuntu 18 мое исправление было таким:
mysql -u root -p <<_EOF_
ALTER USER 'debian-sys-maint'@'localhost' IDENTIFIED BY '`sudo grep --only-matching --max-count=1 --perl-regexp 'password\s*=\s*\K.*' /etc/mysql/debian.cnf | sed --expression='s/'\''/\\'\''/g'`';
_EOF_
Это извлекает пароль из /etc/mysql/debian.cnf
убедитесь, что он не содержит одинарных кавычек:
sudo grep \
--only-matching \
--max-count=1 \
--perl-regexp \
'password\s*=\s*\K.*' \
/etc/mysql/debian.cnf \
| sed \
--expression='s/'\''/\\'\''/g'`
и вставляет его в этот бит SQL:
ALTER USER 'debian-sys-maint'@'localhost' IDENTIFIED BY '<extracted-and-escaped-pw-inserted-here>';
... который затем подается непосредственно на стандартный ввод mysql -u root -p
клиент.
Для Debian 9 (Stretch): debian-sys-maint
пользователь ушел, поэтому решение состоит в том, чтобы избавиться от debian.cnf
в любом:
/etc/logrotate.d/mysql-server
(для MariaDB или MySQL)/etc/logrotate.d/percona-xtradb-cluster-5.7
(для Percona XtraDB Cluster)В этом файле вы найдете:
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
который следует изменить на:
MYADMIN="/usr/bin/mysqladmin"
Мне пришлось изменить его с помощью Percona XtraDB Cluster, который на данный момент не выпущен для Debian Stretch, поэтому сценарий logrotate в настоящее время неверен.