Musíte resetovat heslo. Za tímto účelem
sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
Myšlenka nového nastavení je taková, že byste neměli používat hesla vůbec. Podrobnosti naleznete v modulu UNIX_SOCKET Authentication Plugin.
Obzvláště relevantní je obsah /usr/share/doc/mariadb-server-10.0/README.Debian.gz na Ubuntu 16.04:
Při nových instalacích není nastaveno žádné root heslo a již není vytvořen žádný uživatel debian-sys-maint. Místo toho je kořenový účet MariaDB nastaven tak, aby byl autentizován pomocí unixového soketu, např. jakékoli vyvolání mysqld uživatelem root nebo přes sudo umožní uživateli zobrazit výzvu mysqld.
Uživatele mysql „root“ možná nikdy nesmažete. Ačkoli nemá nastaveno žádné heslo, unix_auth plugin zajišťuje, že jej lze spustit pouze lokálně jako uživatel root.
Pověření v /etc/mysql/debian.cnf určují uživatele, kterého používají inicializační skripty k zastavení serveru a provedení logrotace. Dříve to byl uživatel debian-sys-maint, který se již nepoužívá, protože root může běžet přímo.
Takže pokud deaktivujete tento plug-in pro root a nastavíte heslo, denní úloha cron se přeruší, protože předpokládá, že se bude přihlašovat jako root bez hesla, ale s plug-inem.
Později to říká:
Skripty by se měly spouštět, protože uživatel má požadovaná povolení a je identifikován pomocí unix_socket.
Zdá se tedy, že by aplikace již neměly používat hesla.
Vyřešil jsem problém po odpovědi z tohoto příspěvku:
Nelze resetovat kořenové heslo MySQL (MariaDB)
Je třeba změnit pole pluginu mysql.user pro všechny kořeny na prázdný řetězec.