Ahoj,
/etc/logrotate.d/mysql-server používá konfiguraci z
/etc/mysql/debian.cnf, nikoliv z /root/.my.cnf
mysqladmin --defaults-file=/etc/mysql/debian.cnf ...
Ten při nové instalaci ve stretchi vypadá takhle
# /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Debian při instalaci mariadb vytváří mysql uživatele root autentizovaného pomocí
auth_socket pluginu (stejnojmenný unixový uživatel se může připojit k databázi přes socket a bez hesla).
Viz sekci "ROOT USER AUTHENTICATION VIA UNIX SOCKET" v
/usr/share/doc/mariadb-server-10.1/README.Debian.gz.
$ echo "select host, user, password, plugin from mysql.user where user like 'root';" | sudo mysql --table
+-----------+------+----------+-------------+
| host | user | password | plugin |
+-----------+------+----------+-------------+
| localhost | root | | unix_socket |
+-----------+------+----------+-------------+
Obecně, pokud nějaký lokální uživatel má mít možnost neinteraktivně přistupovat k lokální databázi, je vhodné vytvořit stejnojmenného mysql uživatele s auth_socket pluginem. Je to jednodušší a bezpečnější - nikde se neválí heslo.
/etc/cron.daily/logrotate:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
Oprav mysql uživatele root, tak aby používal auth_socket plugin. Pokud to nejde, uprav
/etc/mysql/debian.cnf. Debian dřív vytvářel mysql uživatele debian-sys-maint (s heslem), takže to je taky možnost.