ZabbixのAdminパスワードリカバリー

自宅のインターネット回線をOCNからNuro光に切り替えるにあたり、久しぶりに自宅ZabbixサーバのWebにアクセスしようとしたところ、Adminのパスワードを記憶しているブラウザが絶滅していた…ので、リカバリーした記録を残しときます。
公式の情報から、MySQLのrootでリセット可能なことはわかりましたが、こんな状態なので当然、そんなもの覚えているわけがありません。そこで、MySQLのrootパスワードリセットから旅は始まります。

初期状態の確認

OSのバージョン

[root@srv01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

MySQLのバージョン

[root@srv01 ~]# mysqld --version
/usr/sbin/mysqld  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)

作業手順

1) ZabbixとMySQLを停止

[root@srv01 ~]# systemctl stop zabbix-server
[root@srv01 ~]# systemctl stop mysqld

2) MySQLを認証なしでログインできるモードで起動

[root@srv01 ~]# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
[root@srv01 ~]# systemctl start mysqld

3) MySQLにログインして、rootのパスワードをNULLに変更

[root@srv01 ~]# mysql -u root

mysql > UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql > EXIT;

4) MySQLを原状復帰(認証なしではログインできないように)して再起動

[root@srv01 ~]# systemctl unset-environment MYSQLD_OPTS
[root@srv01 ~]# systemctl start mysqld

5) MySQLにroot(パスワード無し)でログインして、パスワードを設定

[root@srv01 ~]# mysql -u root

mysql > ALTER USER 'root'@'localhost' IDENTIFIED BY 'ほげほげ';
mysql > FLUSH PRIVILEGES;
mysql > EXIT;

6) ZabbixのAdminパスワードの初期化

[root@srv01 ~]#  mysql -uroot -p zabbix

mysql> UPDATE users SET passwd = 'ZabbixのAdminパスワード' WHERE alias = 'Admin';
mysql > FLUSH PRIVILEGES;
mysql > EXIT;

7) zabbix-serverの起動もお忘れなく!

[root@srv01 ~]# systemctl start zabbix-server

さいごに

Net上の皆様の英知を集結して、なんとかリカバリーに成功することができました。特に、最初にMySQLのモードを変更するときのコマンドとして、以下の記述がされているサイトが多く、当初は"command not found"になってしまい途方に暮れておりました。どうもありがとうございました。

[root@srv01 ~]# mysqld_safe --skip-grant-tables &



この記事が気に入ったらサポートをしてみませんか?