apt update時の 「Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)」エラー対策

ZoneMinderインストール後に、apt updateした場合に、下記エラーが出力されてupdateがエラー終了する問題への対応策です。

エラー内容

Setting up zoneminder (1.35.10~20201016.44-focal) ...
detected systemd
Detected db service is mysql.service
Checking for db
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Creating zm db
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
Error creating db.
dpkg: error processing package zoneminder (--configure):
 installed zoneminder package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 zoneminder
Log ended: 2020-10-17  12:06:38

原因

エラーメッセージの通り、debian-sys-maintユーザーでDBの更新をしようとした際に、ログインエラーが発生した為です。

対策

debian-sys-maintユーザーでDBログイン出来るように、MySQLにログインし、パスワードを設定してやります。

# MySQLでdebian-sys-maintユーザーに設定するパスワードを確認
sudo cat /etc/mysql/debian.cnf  | grep password
password = 5klCD94cmdDac9a8
password = 5klCD94cmdDac9a8

# debian-sys-maintユーザーを上記で確認したパスワードを付与して作成
sudo mysql
CREATE USER 'debian-sys-maint' IDENTIFIED BY '5klCD94cmdDac9a8';
GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint` IDENTIFIED BY '5klCD94cmdDac9a8' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

※上記パスワード「5klCD94cmdDac9a8」は、公開用に適当な文字列にしてあります。適宜、/etc/apt/debian.cnfで確認した結果で読み替えてください。